ランダム振動戦略

作者: リン・ハーンチャオチャン開催日:2023年11月06日 09時30分27秒
タグ:

img

概要

ランダム振動戦略は,イチモク・キンコ・ヒョウ,MACD,ハル移動平均を含む複数の技術指標を統合し,体系的な取引決定システムを形成する.振動する市場におけるトレンド逆転点と潜在的な機会を把握することを目的としている.

戦略の論理

まず,イチモク・キンコ・ヒョウのテンカンセンとキジュンセンが採用される.テンカンセンは過去9期間の最高高と最低低の平均値として計算される.キジュンセンは過去24期間の最高高と最低低の平均値である.価格とキジュンセンのクロスオーバーは取引信号として機能する.

第二に,MACD指標は,トレンドをフォローする重要なモメンタム指標として組み込まれています.これは2つの価格のEMA間の関係を示しています.MACDとシグナルラインのクロスオーバーは取引シグナルを生成します.

第三に,ハル移動平均は,移動平均の遅延問題を改善し,価格逆転を捉える感度を高めるために導入される.それは半期,フル期,平方根期のWMAを使用して計算される.速いHullMAsと遅いHullMAsのクロスオーバーも補助信号として機能する.

最後に,戦略は上記のすべての指標を組み合わせて,堅牢な取引システムを形成します.複数の指標が一致する信号を与える場合にのみ,実際のエントリーとアウトロートは発生します.

利点

  • 複数の指標による多様化によって 単一点の失敗が減少します

  • 統合は全体的なモデルを通じてより強い意思決定力を提供します

  • 誤った信号が減少し,すべての信号が他の信号によって確認される.

  • 効率を向上させるため 強い信条信号のみを 操作する

  • 戦略を変化する市場に適応させるためのパーマータージ可能.

  • 遅延が減り ハルフ移動平均から反応が速い

リスク

  • リスクは高まり 市場が不安定で 誤った信号が増加します

  • インディケーターパラメータが適切に最適化されていない場合,効果がない.

  • 逆転に注目することで 傾向の動きを見逃す可能性があります

  • Hull MAは比較的新しいもので,長期的には証明されていない.

  • 稀な取引は 機会を逃す可能性があります

強化

  • ボリンジャー帯のような指標を追加すれば システムをさらに最適化できます

  • パラメータ調整により 異なる資産と時間枠に最適な組み合わせを見つけます

  • シングル・トレード損失を制御するために ダイナミック・ストップを導入する

  • トレンドフィルターを組み込みます

  • 市場の状況に基づいて頻度とサイズを調整することによってポジションのサイズを最適化します.

結論

ランダム・オシレーション戦略は,レンジ・バインド市場における機会を把握するために複数の技術分析技術を組み合わせます.指標統合,誤った信号の減少,効率の向上の利点があります.しかし,さらなる最適化と適応を必要とする固有リスクも伴います.全体として,これは振動市場取引のための堅牢で実践的なアプローチです.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)

n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement

MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
    strategy.close("Short")

longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen) 
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

もっと