ダブルエントリー平均価格トレーリングストップロス戦略


作成日: 2023-12-01 13:33:48 最終変更日: 2023-12-01 13:33:48
コピー: 0 クリック数: 576
1
フォロー
1619
フォロワー

ダブルエントリー平均価格トレーリングストップロス戦略

概要

この戦略は,二重入場方式を採用し,最初の入場ポイントで入場した後,価格が最初のストップポイントに達しなかった場合,より高い価格で再び入場し,加仓の効果を実現する.同時に,戦略は,均価追跡ストップの方法を採用し,リアルタイムでストップ・損失ラインの位置を更新し,ストップ・損失ラインを入場平均価格の一定のパーセント以上に設定し,利益をロックし,リスクを制御する.

戦略原則

策略は,まず価格が200日単調移動平均より低いかどうかを判断し,そうであれば入場条件を満たす. 策略は14:29~15:00の間の入場で,最初の入場点を形成する. その後,策略は最初のストップラインとストップロスの線を描画する.

価格が上昇したが,最初のストップターゲットに達しなかった場合,最初の入場ポイントの入場価格より5%高い位置で再び入場し,加仓の効果を実現する.この時点で,戦略は,ストップラインの位置を更新し,現在のポジションの平均入場価格の1.15倍に設定する.同時に,第二のストップラインも描画される.

この戦略は,ストップ・ターゲットとストップ・ロスの2つで利益をロックし,さらに利益を得るために,ポジションを上げることができます.

優位分析

この戦略には以下の利点があります.

  1. 双入りの加仓法により,リスクが増加しない前提で,より高い利益を得ることができます.

  2. ストップラインの位置をリアルタイムで更新し,平均価格のストップ追跡方法を採用し,リスクをコントロールし,利益をロックすることができます.

  3. 逆市操作の能力がある.

  4. 入場時間は合理的で,入場地点も合理的で,入場時間は合理的で,入場地点も合理的で,入場時間は合理的で,入場地点も合理的で,入場時間は合理的で,入場地点も合理的です.

  5. パラメータ設定は合理的で,ストップ・ストップ・ストラストポイントは十分に緊密で,利益リスクは高い.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 双入場加仓方式は損失を拡大する可能性がある.両入場ポイントが最終的に止まった場合,損失は増加する.

  2. ストップポイントの設定が不適切であれば,リスクを効果的に制御できず,耐えられる以上の損失を引き起こす可能性があります.

  3. チェックインのタイミングを間違えた場合, チェックインを早め, 騙される確率は大きく増加する可能性があります.

  4. パラメータ設定が不適切であれば,止まり点が遠すぎたり,止まり点が近すぎたり,収益の低下につながる可能性があります.

これらのリスクは,合理的なパラメータの最適化と厳格なリスク制御によって軽減され,回避することができます.

最適化の方向

この戦略は以下の方向から最適化できます.

  1. 異なる技術指標を入学条件としてテストし,より良い入学ポイントを探します.

  2. リスク対利益の最大化のために,ストップ・ストップ・ストラストのテストと最適化を行う.

  3. 異なる加減方法をテストし,最適な加減倍数を決定する.

  4. 逆転を避けるために,トレンド判断のルールに加入してください.

  5. 入学時間の選択を最適化し,入学を早めにしないようにしてください.

要約する

この戦略は,全体的に非常に実用的で,強い実戦的意義を有する.二入場加仓方式を採用すると,リスクを制御した前提でより高い収益が得られ,平均価格追跡ストロップは,利益をよくロックしてリスクを制御することができる.合理的なパラメータの最適化と厳格なリスク制御により,この戦略は,安定した継続的なアルファを得ることができる.

ストラテジーソースコード
/*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 )