大喜び 多要素量策

作者: リン・ハーンチャオチャン, 日付: 2023-12-04 13:04:03
タグ:

img

概要

グレート・デライト多要素定量戦略は,トレンドをフォローする長期戦略として,移動平均値,MACD,Ichimokuクラウドを含む複数の技術指標を組み合わせます.主に200日間の単純な移動平均値を使用して,全体的なトレンドを決定し,20日間の指数関数移動平均値,MACDインデックス,Ichimokuクラウドからの追加の詳細を使用して,特定のエントリーと出口点を特定します.

この戦略は,長期的および短期的トレンドの両方を考慮し,複数の要因の検証により,偽のブレイクによって引き起こされるノイズ取引を効果的にフィルタリングすることができます.高品質の機会を追求しながらも,リスクを制御し,中長期投資の経験豊富な投資家に適しています.

戦略の原則

価格が200日MACを超えると,市場は上昇傾向にあると考えられる.20日MACDとMACDが同時に購入信号を生成し,価格が最高イチモククラウド価格より高くなった場合,またはクラウド内では購入信号が生成される.

価格が200日MAを下回ると,戦略は熊本傾向が始まっていることを決定する.シグナル要件は,今より厳しくなります:20日間のMAとMACDの購入信号に加えて,イチモククラウドは購入を誘発する前に購入信号 (緑色の雲または雲の上の価格) も与えなければなりません.

セールシグナル論理は類似しますが,逆です:牛市では,雲の下位または雲のフリップトリガーの下にキャンドルを閉じてセールします.熊市では,赤い雲または20日間のMAおよびMACDセールシグナルを入力してセールします.

利点分析

この戦略の最大の利点は,複数の長期および短期指標を組み合わせて市場状況を決定することで,誤った信号を効果的にフィルタリングできる点にあります.

  1. 200日間MAは,反トレンド取引を避けるため,全体的なトレンドを決定します.
  2. 20日間のMAは,逆転を把握するために短期的な動向に焦点を当てています.
  3. MACDはトレンド変化を検証します
  4. イチモク雲は 間違った信号を 防ぐために チェックを繰り返します

多層の検証により,収益性が大幅に向上できます.また,長期指標と短期指標の調整により,戦略は短期的および中長期的操作の両方に適しています.

リスク分析

この戦略の主なリスクは,複数の指標が同時に誤った信号を発する可能性である.極端な条件では非常に不可能性が高くても,長期使用では起こりうる.主な対策は:

  1. 適切な組み合わせを見つけるためにパラメータを適切に調整します
  2. ストレートストップ・ロスは,間違ったシグナルが発信されたらすぐに方向を逆転させる.
  3. フューチャーヘッジ方法を使って 利益を確保する
  4. 主要なサポートエリアに応じて位置サイズを調整します.

オプティマイゼーションの方向性

戦略は以下の側面から最適化できます.

  1. 異なるパラメータの組み合わせをテストして 最適値を見つけます
  2. ストップ・ロスのモジュールを追加してリスク管理を図る.
  3. 変化の速さなどの関連指標を組み込むことで 上位と下位を追いかけるのを避けるのです
  4. マシン学習の方法を導入します 例えばニューラルネットワークは 指標の重さを訓練します
  5. 異なる市場での安定性を確認する

結論

グレート・デライト戦略は,指標の科学的な組み合わせを通じてノイズをフィルタリングし,リスクを制御しながら持続的な収益性を可能にします.長期的傾向と短期的な機会の両方を考慮することで,中長期投資に広く適用できます.パラメータ調整,ストップ損失追加,機械学習などの最適化によりさらなるパフォーマンス改善が期待できます.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true)




// Ichimoku

conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)


p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50))



bottomcloud=leadLine2[displacement-1]
uppercloud=leadLine1[displacement-1]




// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
SMA200 = sma(close, input(200))
EMA = ema(close,input(20))


//MACD Indicator - Is the MACD bullish or bearish?

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions

[main,signal,histo]=macd(close,fastLength,slowlength,MACDLength)

buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)))
    true
if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud)))
    buy_entry = false


strategy.entry("Buy",true , when=buy_entry)
alertcondition(buy_entry, title='Long', message='Chart Bullish')


sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)))
    true
if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud)))
    sell_entry = false



strategy.close("Buy",when= sell_entry)


alertcondition(sell_entry, title='Short', message='Chart Bearish')

//plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )

もっと