La stratégie Double K Crossbow combine la stratégie 123 Reversal et la stratégie Special K de Martin Pring
La logique de la stratégie:
La Double K Crossbow se compose de deux parties:
123 Stratégie d'inversion: Il identifie les signaux d'achat et de vente basés sur 2 jours consécutifs d'inversion de prix de clôture, combinés aux lectures de l'oscillateur stochastique. Il génère un signal d'achat lorsque la clôture est supérieure à la clôture précédente pendant 2 jours et que l'oscillateur stochastique est inférieur à 50, indiquant la consolidation. Il génère un signal de vente lorsque la clôture est inférieure à la clôture précédente pendant 2 jours et que l'oscillateur stochastique est supérieur à 50, indiquant la distribution.
Stratégie spéciale K de Martin Pring
Le Double K Crossbow consolide les signaux des deux stratégies, ce qui nécessite un accord pour déclencher des transactions réelles.
Analyse des avantages:
Combine les signaux de deux stratégies pour une entrée et une sortie plus fiables.
123 L'inversion détermine les inversions à court terme tandis que le K spécial évalue la tendance à long terme.
Le taux de variation sur plusieurs périodes donne un aperçu des cycles du marché.
Les paramètres stochastiques optimisés s'adaptent aux différentes conditions du marché.
Analyse des risques:
Les signaux de consolidation peuvent manquer certains points d'achat/de vente et retarder les mouvements à court terme.
Les stratégies peuvent être en désaccord lors d'événements anormaux, ce qui nécessite un jugement sur la direction.
Il est nécessaire de surveiller et d'optimiser les paramètres des deux stratégies, ce qui accroît la complexité.
L'optimisation incorrecte des paramètres à court et à long terme peut manquer les points tournants du cycle.
Des possibilités d'amélioration:
Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux.
Ajouter le module stop-loss pour limiter les pertes.
Ajouter un module de dimensionnement des positions pour s'adapter aux conditions du marché.
Incorporer l'apprentissage automatique pour une modélisation plus robuste du signal.
Ajoutez une optimisation adaptative pour suivre dynamiquement les rythmes du marché.
Conclusion:
La double K Crossbow combine avec succès les atouts des stratégies d'inversion et cycliques pour des signaux de qualité et des opportunités de profit sur plusieurs délais.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 17/02/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Pring's Special K is a cyclical indicator created by Martin Pring. // His method combines short-term, intermediate and long-term velocity // into one complete series. Useful tool for Long Term Investors // Modified for any source. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos MPSK(a, sources) => pos = 0.0 roc1 = (sma(roc(sources,10),10)*1) roc2 = (sma(roc(sources,15),10)*2) roc3 = (sma(roc(sources,20),10)*3) roc4 = (sma(roc(sources,30),15)*4) roc5 = (sma(roc(sources,40),50)*1) roc6 = (sma(roc(sources,65),65)*2) roc7 = (sma(roc(sources,75),75)*3) roc8 = (sma(roc(sources,100),100)*4) roc9 = (sma(roc(sources,195),130)*1) roc10 = (sma(roc(sources,265),130)*2) roc11 = (sma(roc(sources,390),130)*3) roc12 = (sma(roc(sources,530),195)*4) osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12 oscsmt = sma(osc,a) pos := iff(osc > oscsmt, 1, iff(osc < oscsmt, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Martin Pring's Special K", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Martin Pring`s ----") a = input(10, title = "Smooth" ) sources = input(title="Source", type=input.source, defval=close) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMPSK = MPSK(a,sources) pos = iff(posReversal123 == 1 and posMPSK == 1 , 1, iff(posReversal123 == -1 and posMPSK == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )