
La stratégie utilise une méthode de double entrée, après l’entrée du premier point d’entrée, si le prix n’a pas atteint le premier point d’arrêt, il est à nouveau entré dans le prix plus élevé, pour réaliser l’effet de la hausse de la position. En même temps, la stratégie utilise la méthode de suivi de la perte d’équilibre, la mise à jour en temps réel de l’emplacement de la ligne d’arrêt, la mise en place de la ligne d’arrêt à plus d’un certain pourcentage de la valeur moyenne d’entrée, afin de bloquer les bénéfices et de contrôler les risques.
La stratégie détermine d’abord si le prix est inférieur à la moyenne mobile simple de 200 jours et, si c’est le cas, remplit les conditions d’entrée. La stratégie entre chaque jour entre 14h29 et 15h00, formant ainsi le premier point d’entrée. La stratégie trace ensuite la première ligne d’arrêt et de perte.
Si le prix augmente, mais ne parvient pas à atteindre le premier but de l’arrêt, le premier point d’entrée est à nouveau ouvert à 5% plus haut que le prix d’entrée, ce qui a pour effet de placer la position. À ce moment-là, la stratégie met à jour la position de la ligne d’arrêt, en la définissant comme 1.15 fois le prix d’entrée moyen de la position actuelle.
La stratégie permet de verrouiller les bénéfices en utilisant deux objectifs de stop-loss et de suivi des stop-loss, tout en augmentant les bénéfices en augmentant les positions.
Cette stratégie présente les avantages suivants:
La méthode de double entrée permet d’obtenir des rendements plus élevés sans augmenter le risque.
La mise à jour en temps réel de la position de la ligne de stop-loss, la méthode de suivi des stops au cours moyen, permet de bien contrôler les risques et de bloquer les bénéfices.
Il a une certaine capacité à opérer en contre-marché.
Les horaires d’entrée et de sortie sont raisonnables pour éviter d’être piégé.
Les paramètres sont raisonnables, le point d’arrêt et de perte est suffisamment serré et le risque de gain est plus élevé.
Cette stratégie comporte aussi des risques:
La méthode de double entrée peut augmenter les pertes. Si les deux points d’entrée s’arrêtent finalement, les pertes augmentent.
Si le point d’arrêt n’est pas correctement réglé, le risque ne peut pas être contrôlé efficacement et peut entraîner des pertes supérieures à la tolérable.
Si l’heure d’entrée est mal choisie, cela peut entraîner une entrée anticipée et augmenter considérablement la probabilité d’être piégé.
Si les paramètres sont mal réglés, les points d’arrêt trop éloignés ou les points d’arrêt trop proches peuvent entraîner une baisse de rendement.
Ces risques peuvent être réduits et évités par une optimisation des paramètres raisonnables et un contrôle strict des risques.
Cette stratégie peut également être optimisée dans les directions suivantes:
Test des différents critères techniques pour trouver les meilleurs points d’entrée
Test et optimisation des points de stop-loss afin de maximiser le rapport bénéfice-risque.
Tester différentes méthodes de mise en place afin de déterminer le nombre optimal de multiples de mise en place.
Il est important d’adhérer à la règle du jugement de tendance et d’éviter les entrées de contre-courant.
Optimiser le choix de la période d’admission pour éviter une admission anticipée.
La stratégie est très pratique dans l’ensemble et a une forte pertinence sur le terrain. L’adoption d’une méthode de mise en position à double entrée permet d’obtenir des rendements plus élevés dans le cadre d’un contrôle des risques, le stop loss suivant la moyenne des prix permet de bien verrouiller les bénéfices et de contrôler les risques. Grâce à une optimisation des paramètres raisonnables et à un contrôle des risques rigoureux, la stratégie permet d’obtenir une alpha stable et continue.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
strategy("8 Whittle Down", "8 WD", 1, initial_capital=0)
// DUAL ENTRIES
// ADDS ON MORE SHARES IF THE PILOT TRADE DOES NOT REACH PROFIT TARGET
// RED LINE == STOP LOSS LINE
// GREEN LINE == PROFIT TARGET FOR THE 1ST TRADE
// YELLOW LINE == ADD ON SHARES TO THE TRADE
// WHITE LINE == PROFIT TARGET FOR THE 1ST & SECOND TRADE COMBINED
StopLossPerc = input(1.15, "Total Stop Loss", step=0.01)
T2EntTrgPerc = input(1.05, "Enter Second trade @ what higher 5%?", step=0.01) // BUY STOP LIMIT ONLY WHEN ONE TRADE IS ALREADY OPEN & AIMS TO BUY DOUBLE THE OWNED SHARES AT A HIGHER ENTRY PRICE // YELLOW LINE
T1ProfTrgPerc = input(0.95, "First Trade Profit % Target", step=0.01)
T2ProfTrgPerc = input(0.90, "Second Trade Profit % Target", step=0.01)
RiskRange = close*(StopLossPerc)-1
Shares = floor(1000*1000/RiskRange) / 3 // SPLITS THE RISK OVER THREE TRADES
F1 = close < sma(security(syminfo.tickerid, "D", close[2]), 200) // HIGH OF OLD DATA -- SO NO REPAINTING
F2 = strategy.opentrades == 0
buyTime = time(timeframe.period, "1429-1500") // BUY AT THE END OF THE DAY
StopLossLine = strategy.position_avg_price * StopLossPerc
StopLossCol = strategy.opentrades != 0 ? #FF0000 : na
plot(StopLossLine, "StopLossLine", StopLossCol, 2)
strategy.cancel_all() // CANCELS ALL ORDERS: BECAUSE THE SYSTEM WILL ADD A BUY STOP LIMIT ORDER FOR ENTRY TWO
///============== ENTRY 1 ==============
if F1 and buyTime and strategy.opentrades == 0
strategy.entry("S1", false, qty=Shares)
T1Prof = strategy.position_avg_price * T1ProfTrgPerc
plot(T1Prof, "1st Profit Target", strategy.opentrades == 1 ? #00FF00 : na, 2)
strategy.exit("S1 Ex", "S1", limit=T1Prof, stop=StopLossLine )
///============== ENTRY 2 ==============
T2EntryTrg = strategy.position_avg_price * T2EntTrgPerc // enters on higher target than 1st entry
plot(T2EntryTrg, "ent2EntryTrg", strategy.opentrades == 1 ? color.yellow : na, 2)
if strategy.opentrades == 1
strategy.order("S2", false, stop=T2EntryTrg, limit= T2EntryTrg, qty=Shares * 2) // BUYS MORE SHARES
T2Prof = strategy.position_avg_price * T2ProfTrgPerc
T2Col = strategy.opentrades == 2 ? color.white : na
plot(T2Prof, "2nd Profit Target", T2Col, 2)
strategy.exit("S2 Ex", "S2", limit=T2Prof, stop=StopLossLine )