pineforge-codegen 0.7.4__py3-none-any.whl → 0.7.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pineforge-codegen might be problematic. Click here for more details.
- pineforge_codegen/codegen/emit_top.py +21 -11
- {pineforge_codegen-0.7.4.dist-info → pineforge_codegen-0.7.5.dist-info}/METADATA +1 -1
- {pineforge_codegen-0.7.4.dist-info → pineforge_codegen-0.7.5.dist-info}/RECORD +5 -5
- {pineforge_codegen-0.7.4.dist-info → pineforge_codegen-0.7.5.dist-info}/WHEEL +0 -0
- {pineforge_codegen-0.7.4.dist-info → pineforge_codegen-0.7.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -611,17 +611,27 @@ class TopLevelEmitter:
|
|
|
611
611
|
lines.append(" static_cast<MagnifierDistribution>(magnifier_dist));")
|
|
612
612
|
else:
|
|
613
613
|
# The magnifier-aware run() overload handles ratio=1 (no
|
|
614
|
-
# aggregation)
|
|
615
|
-
#
|
|
616
|
-
#
|
|
617
|
-
#
|
|
618
|
-
#
|
|
619
|
-
#
|
|
620
|
-
#
|
|
621
|
-
#
|
|
622
|
-
#
|
|
614
|
+
# aggregation), empty itf (auto-detect from bar timestamps),
|
|
615
|
+
# and empty stf (default-to-input) entirely on its own, so we
|
|
616
|
+
# route through it whenever ANY TF/magnifier knob is set. We
|
|
617
|
+
# only fall back to the simple ``run(bars, n)`` path when the
|
|
618
|
+
# caller passed NO magnifier AND NO timeframe at all.
|
|
619
|
+
#
|
|
620
|
+
# The previous guard ``(!itf.empty() && !stf.empty() && itf != stf)``
|
|
621
|
+
# required BOTH timeframes to be present before aggregating.
|
|
622
|
+
# The cloud caller passes ``input_tf=""`` (auto-detect) with a
|
|
623
|
+
# concrete ``script_tf="240"``; that made the guard false and
|
|
624
|
+
# the chosen ``script_tf`` was silently ignored — the strategy
|
|
625
|
+
# ran on raw 1m bars with no aggregation. It also dropped the
|
|
626
|
+
# bar_magnifier flag whenever the host passed empty TFs,
|
|
627
|
+
# producing 0.21% exit-price drift on the magnifier probes.
|
|
628
|
+
#
|
|
629
|
+
# Over-approximating to ``!itf.empty() || !stf.empty()`` is
|
|
630
|
+
# always correct: the TF-aware overload is a no-op when the
|
|
631
|
+
# ratio resolves to 1, so the only thing lost in that case is
|
|
632
|
+
# the precalc optimization — never correctness.
|
|
623
633
|
lines.append(" bool needs_full_run = (bar_magnifier != 0)")
|
|
624
|
-
lines.append(" ||
|
|
634
|
+
lines.append(" || !itf.empty() || !stf.empty();")
|
|
625
635
|
lines.append(" if (!needs_full_run) {")
|
|
626
636
|
lines.append(" strat->run(bars, n);")
|
|
627
637
|
lines.append(" } else {")
|
|
@@ -865,7 +875,7 @@ class TopLevelEmitter:
|
|
|
865
875
|
lines.append(" bool bar_magnifier = false,")
|
|
866
876
|
lines.append(" int magnifier_samples = 4,")
|
|
867
877
|
lines.append(" MagnifierDistribution magnifier_dist = MagnifierDistribution::ENDPOINTS) {")
|
|
868
|
-
lines.append(" bool needs_dynamic = bar_magnifier ||
|
|
878
|
+
lines.append(" bool needs_dynamic = bar_magnifier || !input_tf.empty() || !script_tf.empty();")
|
|
869
879
|
lines.append(" if (needs_dynamic) {")
|
|
870
880
|
lines.append(" _use_precalc = false;")
|
|
871
881
|
lines.append(" } else {")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pineforge-codegen
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.5
|
|
4
4
|
Summary: PineScript v6 to C++ transpiler that targets the pineforge-engine runtime.
|
|
5
5
|
Project-URL: Homepage, https://github.com/pineforge-4pass/pineforge-codegen-oss
|
|
6
6
|
Project-URL: Issues, https://github.com/pineforge-4pass/pineforge-codegen-oss/issues
|
|
@@ -18,7 +18,7 @@ pineforge_codegen/analyzer/tables.py,sha256=KiI3gvYGWBw9PgX_PPXPS-fk8dfH54OjMCMG
|
|
|
18
18
|
pineforge_codegen/analyzer/types.py,sha256=HAbEAnxkZxX7d5iFQA6KT0Ocs7kkUprX78z9DMcHVlc,12181
|
|
19
19
|
pineforge_codegen/codegen/__init__.py,sha256=jvwwf93pqyHnFSvGPcD8Mhr_kAk0Uc4W6IqhKu8UIlI,2232
|
|
20
20
|
pineforge_codegen/codegen/base.py,sha256=p9Tkh7VTLSTl34i-pyIYOm6PmmonAYOtRgfLKFXHnQo,74019
|
|
21
|
-
pineforge_codegen/codegen/emit_top.py,sha256=
|
|
21
|
+
pineforge_codegen/codegen/emit_top.py,sha256=dyuLuPh8SoZcxiC3wwa7wVikPMOBY0bFDCq8L2VvoNI,46638
|
|
22
22
|
pineforge_codegen/codegen/helpers.py,sha256=TIsTUjrri4DobEJ9Cr-rl9s6LILWuKWolROUu1-f4mw,7313
|
|
23
23
|
pineforge_codegen/codegen/helpers_syminfo.py,sha256=GFrx9i2HXSCmGIpIds0cFrtJ6IQiznfXxH8aI8h3DQ4,4878
|
|
24
24
|
pineforge_codegen/codegen/input.py,sha256=z-qkYIUrmlU5EW1siUiXdbs7r6eY6-FfLXuKB5F-E1g,15587
|
|
@@ -29,7 +29,7 @@ pineforge_codegen/codegen/types.py,sha256=kt2tXtFhFmm4cWBuXnvPHfop-AWIB7drUiKNaD
|
|
|
29
29
|
pineforge_codegen/codegen/visit_call.py,sha256=V21US4tHVYg5pHcD5y8Jc9yxghiBcw907TqUtNlE91Y,74801
|
|
30
30
|
pineforge_codegen/codegen/visit_expr.py,sha256=kXrwIRouG4uo-e0lze23Kat3p5LFSfldgML088s4G_U,36762
|
|
31
31
|
pineforge_codegen/codegen/visit_stmt.py,sha256=Vgtx_j_xYjH-qntnUlZiyYXIX9oioijN8vmBLrneYcA,38125
|
|
32
|
-
pineforge_codegen-0.7.
|
|
33
|
-
pineforge_codegen-0.7.
|
|
34
|
-
pineforge_codegen-0.7.
|
|
35
|
-
pineforge_codegen-0.7.
|
|
32
|
+
pineforge_codegen-0.7.5.dist-info/METADATA,sha256=_I6Xwm4bYMuH8WNQUk60as8KufIyRK4Ok8F_3ZurcuE,17599
|
|
33
|
+
pineforge_codegen-0.7.5.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
|
|
34
|
+
pineforge_codegen-0.7.5.dist-info/licenses/LICENSE,sha256=Hf1kZ8OCaQ-nd2i92f2WEX1ZKCc6jqe-rtR4fVENQHY,7186
|
|
35
|
+
pineforge_codegen-0.7.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|