シャドートレーディング戦略


作成日: 2023-11-03 16:03:59 最終変更日: 2023-11-03 16:03:59
コピー: 0 クリック数: 986
1
フォロー
1617
フォロワー

シャドートレーディング戦略

概要

影取引戦略は,K線に長下線または長上線のK線が現れるのを識別することによって,市場が逆転する可能性のあるタイミングを判断する. 長い下線を識別すると,多行し,長い上線を識別すると,空行する. この戦略は,主に長い影線の反転の普遍的な法則を利用して取引する.

戦略原則

影取引戦略の核心的な論理は,K線で出現する長上影線と長下影線を識別することである. 戦略は,K線実体サイズを計算することによって行われる.corpo影線の大きさpinnaLpinnaS影線の大きさが実体サイズより一定数の倍であるとき,反転の機会が考えられる.具体的には,戦略は以下のステップを含んでいる.

  1. K線実体サイズを計算するcorpoオープン価格とクローズ価格の差の絶対値である.
  2. 影線を計算するpinnaL絶対値とは,最高価格と閉店価格の差の絶対値である.
  3. シャドーラインを計算するpinnaS,すなわち,最低価格と閉店価格の差の絶対値である.
  4. 上の影線が実体より大きいかどうかを判断し,pinnaL > (corpo*size),size変形可能なパラメータである.
  5. 影線が実体より大きいかどうかを判断し,pinnaS > (corpo*size)
  6. 上記の条件が成立する場合は,影線が現れるK線が閉じる時,空白 (長上影線) または多做 (長下影線) をする.

この戦略は,K線の波動の大きさを判断します.dim値が最小値より大きいかどうかminフィルターで,波動が小さすぎる不気味なK線を取り除く.入場後,止損と止退出を設定する.

戦略的優位分析

  • シャドーラインの反転の普遍的な法則を利用して,より信頼性の高い取引信号
  • 戦略の論理はシンプルで明快で,パラメータの設定は直感的で,簡単に把握できます.
  • パラメータの調整により入場頻度を制御し,取引リスクを柔軟に制御できます.
  • トレンド,サポート,レジスタンスなどの要因を組み合わせてさらに最適化できます.

リスクと解決策

  • 長影線反転が失敗し,反転が失敗する確率は存在し,パラメータを調整することでリスクを低減することができる
  • 逆行操作を避けるために,トレンドを判断する必要があります.
  • 特定の品種のパラメータに最適化が必要で,品種によって異なる.
  • 他の指標と組み合わせて,勝率の上昇と引き換えに,利益率の低下をフィルターできます.

戦略最適化の方向性

  • 異なる品種パラメータに基づいて最適化して,戦略の安定性を高める
  • 移動平均線などの指標を組み合わせてトレンドを判断し,逆行操作を避ける
  • 戦略の有効性を高めるために,前期的な高点や低点への判断を高めること
  • 利潤を維持しながら損失のリスクを最小限に抑えるため,ストップ・ストップ・ポジションの最適化と調整
  • ポジション制御を最適化し,異なる品種のポジションを設定できます.

要約する

影取引戦略は,比較的シンプルで実用的な短線取引戦略である.長い影線の反転の普遍的な法則を利用して取引信号を生成する.この戦略の論理はシンプルで,実行しやすい.品種差に応じて調整・最適化することができる.同時に,影取引戦略には一定のリスクがあり,トレンドやその他の要因と組み合わせてフィルタリングを施し,誤った取引の確率を減らす必要がある.適切に使用すると,影取引戦略は,定量取引システムの有効な構成要素になることができる.

ストラテジーソースコード
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-11 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Shadow Trading", overlay=true)

size = input(1,type=float)
pinnaL = abs(high - close) 
pinnaS = abs(low-close)
scarto = input(title="Tail Tollerance", type=float, defval=0.0018)
corpo = abs(close - open)
dim = abs(high-low)
min = input(0.001)
shortE = (open + dim)

longE = (open - dim)
barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na)

longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
minimo=low+scarto
massimo=high+scarto
barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na)
shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
//plot(shortE)
//plot(longE)
//plot(open)
ss= shortcond ? close : na
ll=longcond ? close : na
offset= input(0.00000)

DayClose = 2
closup = barssince(change(strategy.opentrades)>0)  >= DayClose 

longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) 

crossFlag = longcond ? 1 : 0
monthBegin = input(1,maxval = 12)
yearBegin = input(2013, maxval= 2015, minval=2000)

if(month(time)>monthBegin and year(time) >yearBegin)
    if (longcond)
        strategy.entry("short", strategy.short, stop = low - offset)   
//strategy.close("short", when = closup)
shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
if(month(time)>monthBegin and year(time) >yearBegin)
    if (shortcond)
        strategy.entry("long", strategy.long, stop = high + offset)
//strategy.close("long", when = closup)

Target =  input(20) 
Stop = input(70) //- 2
Trailing = input(0) 
CQ = 100

TPP = (Target > 0) ? Target*10: na
SLP = (Stop > 0) ? Stop*10 : na
TSP = (Trailing > 0) ? Trailing : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)