Files
FX-ML-Trading-Engine/Q Research/strategies/__pycache__/ma_crossover.cpython-313.pyc
T

37 lines
3.8 KiB
Plaintext
Raw Normal View History

2025-11-14 23:16:51 +00:00
ó
biz ãóhSrSSKJr SSKJrJr SSKJr SSKJ r \"S5"SS \ 55r
g
) zNSimple moving-average crossover strategy registered for StrategyEngine combos.é)Ú annotations)ÚDictÚAnyé)Úregister)ÚStrategyÚ ma_crossovercób^\rSrSrSrSSU4SjjjrS SjrS
SjrSrU=r $) ÚMovingAverageCrossoveré
Emits ENTER/EXIT signals when a fast SMA crosses a slow SMA.
State inputs expected from StrategyEngine:
- sma_fast / sma_slow
- bar_idx (int)
- position_units (float)
- default_qty (float)
cóø>[TU]UUUUS9 [U5Ul[ [ SU55Ul[[ SU55Ul[U5Ul SUl
SUl SUl g)N)Ú size_multÚ
cooldown_barsÚexit_buffer_pctÚ allow_shortrç)
ÚsuperÚ__init__ÚfloatrÚintÚmaxrrÚboolrÚ
_prev_fastÚ
_prev_slowÚ _block_until)ÚselfrrrrÚ __class__s €ÚT/Users/chuan/Documents/Projects/FX_Backtest/QuantResearch/strategies/ma_crossover.pyrÚMovingAverageCrossover.__init__s|ø€ô ÑØØ ñ
ô ˜yÓŒÜ ¤ Q¨
Ó!6Ó7ˆÔÜ$¤S¨¨oÓ%>ÓÔÜ  ÓÔà(,ˆŒØ(,ˆŒØ!"ˆÕócóURS5nURS5n[URSS5=(d S5n[URSS5=(d S5nUbUcSS0$URnURnX lX0lUbUcSS0$X@R
:aSS0$UR nURU5n Xg:*=(a X#:„n
Xg:¬=(a X#:n U
(aX@R-UlS U S
.$U (a)UR(aX@R-UlS U S
.$US U--n US U-
-n
US:”a X-:aSS
0$US:aX,:”dUR(dSS0$SS0$)sma_fastÚsma_slowÚbar_idxrÚposition_unitsrÚactionÚHOLDÚ
ENTER_LONG)r&ÚsizeÚ ENTER_SHORTçð?Ú EXIT_LONGÚ
EXIT_SHORT)
ÚgetrrrrrrÚ_position_sizerr)rÚstateÚfastÚslowr$ÚpositionÚ prev_fastÚ prev_slowÚbufferr)Ú
crossed_upÚ crossed_downÚslow_with_bufferÚ
slow_lowers rÚon_barÚMovingAverageCrossover.on_bar-sØy‰y˜ÓØy‰y˜ÓÜe—i‘i  ¨1ÓÓܘŸÐ#3°SÓ@¸SÓAˆà ‰<˜4™<ؘ —O‘Oˆ Ø—O‘Oˆ ،،à Ñ   Ñ 1ؘfÐ × ˜ ×%ˆØ×" )ˆàÑ+×± ˆ
Ø Ñ=°$±+ˆ æ Ø '×*<Ñ*<Ñ <ˆ Ø*°DÑ ˜D×,×,Ø '×*<Ñ*<Ñ <ˆ Ø+°TÑ  3¨¡<ÑØ˜S 6™\Ñ*ˆ
à a<˜˜ a<˜4¸D×<L×<Lؘ ˜!r có\URS5nUcg[U5UR-$) default_qty)r.rr)rr0r>s rr/Ú%MovingAverageCrossover._position_sizeZs-Ø—ii 
Ó Ø Ñ ØÜ! D§N¡NÑ2r )rrrrrrr)r+rrT)
rrrrrrrrÚreturnÚNone)r0úDict[str, Any]r@rB)r0rBr@z float | None)