暗黒取引戦略

作者: リン・ハーンチャオチャン,日付: 2023年11月3日 16:03:59
タグ:

img

概要

シェード・トレーディング戦略は,潜在的な市場逆転機会を決定するために,長い下下または上下のシェードでKラインを識別する.長い下下のシェードが特定された場合,長い上下のシェードが特定された場合,短くなります.この戦略は主に,シェード逆転の一般的な原則を使用して取引します.

戦略の論理

シェード・トレーディング戦略の基本的な論理は,K線で長い上下のシェードを識別することです.戦略は,K線体の大きさを計算します.corpo影の大きさに誓って,pinnaLそしてpinnaS. 影のサイズが特定の倍数で体サイズよりも大きい場合,逆転の機会があると考えられる.特に,戦略には以下のステップが含まれます:

  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)

もっと