この戦略は,3つのタイムフレームにわたるハイケンアシのキャンドルを用いて,すべてのタイムフレームが上昇または下落に一致するときにシグナルを生成します. 偽信号を減らすために複数のタイムフレームを使用してトレンドを確認することを目的としています.
ハイケン・アシのキャンドルは,トレンドの識別を容易にするために価格の動きを滑らかにすることで通常のキャンドルと異なります.
この戦略は,毎日,毎週,毎月ヘイケンアシのキャンドルを採用する. 3つのキャンドルがすべて上昇し,緑色のキャンドルが表示されると,ロング信号が生成される.すべての赤いキャンドルが表示されると,ショート信号が生成される.
入力後にタイムフレームが方向を変えたときに終了します
複数のタイムフレームで確認すると 誤った信号が減り 信頼性が向上します
ハイケン・アッシは 傾向を特定するために 騒音を和らげます
シンプルで直線的なルール 実行が簡単
柔軟な時間枠で 異なる製品に適応できます
パラメータの最適化も不要で 使いやすいです
厳格な条件では 機会を逃すこともあり 条件の要求を緩和することもあります
ハイケン・アシの遅延は残る 信号を遅らせる可能性があります
リスクをコントロールできない.移動するストップロスを追加することができます.
固定リスク報酬は柔軟性がない 動的ストップを導入できる
誤った信号に易く 価格・ボリュームの確認を追加できます
15mや60mのような時間枠をテストします
ハイケン・アシのパラメータを最適化
リスク管理のために移動ストップ損失を追加します.
範囲を避けるために市場構造指標を組み込む.
収容期間を延長するための再入国条件を策定する.
この戦略は,トレンドフォローのためのタイムフレーム全体でハイケンアシを利用しているが,インジケータのみのデザインは誤った信号に易い.追加のインジケータ,ストップ,パラメータ最適化によりより信頼性のあるものにする.全体として,マルチタイムフレームの確認は有用な概念である.
/*backtest start: 2023-01-01 00:00:00 end: 2023-03-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["v_input_5",true]] */ //@version=4 strategy("Heiken Ashi MTF Strategy") ha_t = heikinashi(syminfo.tickerid) res = input('D', title="TM 1") ha_open = security(ha_t, res, open) ha_close = security(ha_t, res, close) ha_dif = ha_open-ha_close ha_diff=iff(ha_dif > 0, 1, iff(ha_dif<0, 2, 3)) res2 = input('W', title="TM 2") ha_open2 = security(ha_t, res2, open) ha_close2 = security(ha_t, res2, close) ha_dif2 = ha_open2-ha_close2 ha_diff2=iff(ha_dif2 > 0, 1, iff(ha_dif2<0, 2, 3)) res3 = input('M', title="TM 3") ha_open3 = security(ha_t, res3, open) ha_close3 = security(ha_t, res3, close) ha_dif3 = ha_open3-ha_close3 ha_diff3=iff(ha_dif3 > 0, 1, iff(ha_dif3<0, 2, 3)) plot(15, title="TF1", color=iff(ha_diff==1, color.red, iff(ha_diff==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true) plot(14, title="TF2", color=iff(ha_diff2==1, color.red, iff(ha_diff2==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true) plot(13, title="TF3", color=iff(ha_diff3==1, color.red, iff(ha_diff3==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true) short = ha_diff ==1 and ha_diff2==1 and ha_diff3 ==1 long = ha_diff ==2 and ha_diff2==2 and ha_diff3 ==2 exitlong = ha_diff ==1 or ha_diff2==1 or ha_diff3 ==1 exitshort = ha_diff ==2 or ha_diff2==2 or ha_diff3 ==2 longA = input(true) shortA = input(false) if(longA) strategy.entry("long",1,when=long) strategy.close("long",when=exitlong) if(shortA) strategy.entry("short",0,when=short) strategy.close("short",when=exitshort)