2つのエントリーポジションを平均するストップ損失戦略

作者: リン・ハーンチャオチャン,日付: 2023年12月1日 13:33:48
タグ:

img

概要

この戦略は二重エントリーアプローチを採用している.最初のエントリー後,価格が最初の取利益レベルに達しない場合は,ポジションを追加する効果を達成するために再び高い価格でエントリーする.同時に,戦略は,ポジション平均を採用し,ストップロスのラインをリアルタイムで更新し,利益とリスクを制御するために平均エントリー価格の上の一定のパーセントに設定する.

戦略の論理

この戦略は,まず価格が200日間のシンプル・ムービング・アベア以下であるかどうかを判断する.そうであれば,エントリー基準を満たしている.この戦略は,最初のエントリを形成するために毎日14時29分から15時00分の間にエントリーする.その後,戦略は最初の利益とストップ損失ラインをプロットする.

価格が上昇するが,最初のテイク・プロフィート目標に達しない場合,ポジションを追加するために最初のエントリー価格より5%上回して再びエントリする.この時点で,戦略はストップ・ロスを現在の平均保有価格の1.15倍に更新する.同時に,第2のテイク・プロフィートラインがプロットされる.

戦略は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 )



もっと