モメントブレイク 移動平均取引戦略

作者: リン・ハーンチャオチャン,日付: 2023年11月1日 17:13:40
タグ:

img

概要

この戦略は,移動平均値,MACD指標,キャンドルスティックパターンを組み合わせて,低変動性株の取引信号を生成します.特定の条件が満たされたときに警告するために購入または販売信号を印刷することができます.どのチャートを見るかを特定するのに役立つ時間節約として使用します.あなたのニーズに合わせて入力と設定を調整できます.私は2つまたは3つの注文を許可することを提案します.

戦略の論理

戦略は主に3つの指標を用いて取引信号を判断しています.

  1. 移動平均線: 3つの移動平均線 - 速い,遅い,ベースライン - を計算し,速い線がスローラインを超えると購入信号を生成します.

  2. MACD インディケーター: MACD ヒストグラムと信号線を計算し,MACD ヒストグラムが0を超えると購入信号を生成する.

  3. キャンドルスタイルのパターン: 単一のキャンドル内の割合増加を計算し,増加が一定パーセントを超えると購入信号を生成し,市場メーカーによってマークアップとして判断します.

セール・シグナルでは,ストップ・ロスのレベルと,プロフィートのレベルを設定します.価格がストップ・ロスのレベルと,プロフィートのレベルに達するとセール・シグナルを生成します.

利点

  1. 相互検証のための3つの異なるタイプの技術指標を組み合わせ,誤った信号を回避する.

  2. 流動性は良好で,変動が低い株式に適しています. 移動平均値は中長期トレンドを特定し,MACDは短期的な勢いを捉え,キャンドルスタイクはマーケットメーカーの行動を特定します.

  3. ストップ・ロスの条件を設定し 利益を固定し 損失を増やすのを防ぐ

  4. シンプルで明快な論理 実行が簡単 直感的に調整可能なパラメータ 柔軟な適応

  5. 指標パラメータは最適化され,安定性と収益性についてテストされます.

リスク

  1. トレンドフォロー戦略として,範囲限定の不安定な市場では効果がなく,頻繁な小利益/損失を生む可能性があります.

  2. キャンドルスタイクパターンは主観的で 市場メーカーの行動を正確に判断するのは困難で 誤った信号を生む可能性があります

  3. ストップ・ロスは異なる株に対して調整する必要があります 小さすぎると早めにストップ・ロスは起こり 大きすぎると利益が制限されます

  4. 戦略は比較的複雑で,複数の指標を同時に考慮する必要があるため,トレーダーには高い技術的なスキルが必要です.パラメータは継続的な追跡と最適化が必要です.

改善の方向性

  1. 市場状況判断を追加し,明らかなトレンド期間のトレンドをフォローし,統合中に取引を避ける.支援するためにATRなどを追加することができます.

  2. 移動平均のパラメータを最適化し,期間を株の特性に合わせて調整する.異なる移動平均のタイプで実験する.

  3. マシン学習を導入して 市場作者の行動をモデル化し 誤った信号を減らす

  4. 固定設定の代わりに ダイナミックなストップ・ロストと 収益戦略を開発します

  5. 誤った信号を減らすために非常に主観的な指標を削除することによって戦略を簡素化します.より安定した結果を得るために同じタイプの指標を平均することを検討することもできます.

結論

この戦略は,移動平均値,MACDおよび市場メーカー行動判断を比較的完全な低リスクの株式取引戦略に統合している.特定の利点があるが,改善できるいくつかの側面もある.複雑であるにもかかわらず,技術要件はトレーダーにとってそれほど要求が高くありません.継続的な最適化とテストにより,この戦略は非常に実践的な定量的な取引ツールになることができます.低波動性株の短期中期取引のための参照ソリューションを提供します.


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

//@version=3
strategy("Simple Stock Strategy", overlay=true)

//Simple Trading Strategy for Stocks//
// by @ShanghaiCrypto //

////SMA////
fastLength = input(12)
slowLength = input(26)
baseLength = input(100)
price = close

mafast = sma(price, fastLength)
maslow = sma(price, slowLength)
mabase = sma(price, baseLength)

///MACD////
MACDLength = input(9)
MACDfast = input(12)
MACDslow = input(26)
MACD = ema(close, MACDfast) - ema(close, MACDslow)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

////PUMP////
OneCandleIncrease = input(6, title='Gain %')
pump = OneCandleIncrease/100

////Profit Capture and Stop Loss//////
stop = input(2.0, title='Stop Loss %', type=float)/100
profit = input(6.0, title='Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - stop)
take_level = strategy.position_avg_price * (1 + profit)

////Entries/////
if crossover(mafast, maslow)
    strategy.entry("Cross", strategy.long, comment="BUY")

if (crossover(delta, 0))
    strategy.entry("MACD", strategy.long, comment="BUY")
    
if close > (open + open*pump)
    strategy.entry("Pump", strategy.long, comment="BUY")

/////Exits/////
strategy.exit("SELL","Cross", stop=stop_level, limit=take_level)
strategy.exit("SELL","MACD", stop=stop_level, limit=take_level)
strategy.exit("SELL","Pump", stop=stop_level, limit=take_level)

////Plots////
plot(mafast, color=green)
plot(maslow, color=red)
plot(mabase, color=yellow)
plot(take_level, color=blue)
plot(stop_level, color=orange)

もっと