ハイキン・アシ 優良な買い物・販売戦略

作者: リン・ハーンチャオチャン開催日:2023年10月7日 15:01:06
タグ:

概要

この戦略は,単一の指標 - スムーズヘイキン・アシ (Smoothed Heikin-Ashi) をベースに,買取・売却操作の後に単純なトレンドを実装する.スムーズヘイキン・アシ (Smoothed Heikin-Ashi) インジケーターを通じてトレンド方向を特定し,利益の出口を目的として,歴史的なキャンドルスタイクパターンと組み合わせたエントリータイミングを決定する.

戦略の論理

この戦略は,オープン価格,高値,低値,閉値の移動平均を計算し,スムーズなハイキン・アシを構成する.

購入条件:現在のバーは閉じる >前のバーは閉じる,前のバーは閉じる > 2バー前は閉じる,最新の3バーは上昇する.

売り条件:現在のバーは閉じる <前のバーは閉じる,前のバーは閉じる < 2バー前は閉じる,最後の3バーは下落する.

購入・販売条件の両方で,同じ方向の連続取引を避けるために,最新の信号が0または反対の信号である必要があります.

利点分析

  • シンプルな論理と単一の指標
  • ハイキン・アシのトレンドフォロー能力を活用する
  • トレンドを見逃したり,キャンドルスタイクパターンを介して逆向きに取引するのを避ける
  • 複製信号をフィルタリングすることで不必要な取引を減らす

リスク分析

  • ハイキン・アシは遅延効果があり,トレンドターニングポイントを見逃す可能性があります
  • 最新の3つのバーのみを考慮し,長期的なトレンド判断がない
  • ストップ・ロスは設定されていないため,損失を増やすリスクがある.
  • システム的なリスクに脆弱な市場全体的な状況を無視する

長期的傾向の他の指標を組み合わせ,ストップ損失戦略を最適化,市場全体に注意を払うなどにより改善ができます.

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

  • 長期的な傾向を決定するために他の指標を追加する
  • トレイリングストップやパーセントベースのストップ・ロスのようなストップ・ロスの最適化
  • 範囲限定市場での取引を避けるため,全体の市場指数を考慮する
  • 移動平均期などのパラメータを最適化
  • 取引量のサポートを保証するためのボリューム指標を追加する

概要

この戦略は,ヘイキン・アシのトレンドフォロー能力を利用し,エントリータイミングを決定するためにキャンドルスタイルのパターンを組み合わせ,重複信号をフィルタリングすることによって取引頻度を制御する.論理はシンプルで実行が簡単です.しかし,複数の指標コンボを使用し,ストップロスを最適化し,全体的な市場状況を考慮し,より堅牢に強化することができます.


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

//Masoud Abdoli
//Heikin Ashi Smoothed Buy & Sell Strategy Rev.4
//Date: 01-Oct-2021
//@version=4

strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true,
 initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5)

maOpen  = ema(open , MaPeriod)
maHigh  = ema(high , MaPeriod)
maLow   = ema(low  , MaPeriod)
maClose = ema(close, MaPeriod)

haClose = (maOpen+maHigh+maLow+maClose)/4
haOpen = 0.0
haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2
haHigh = max(maHigh, max(haClose, haOpen))
haLow  = min(maLow , max(haClose, haOpen))

plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue)

B0 = haClose    - haOpen
B1 = haClose[1] - haOpen[1]
B2 = haClose[2] - haOpen[2]
BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2]
SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2]

last_signal = 0
Buy_final  = BuyCondition  and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1)
Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1)
last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1]

plotshape(Buy_final , style=shape.labelup  , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white)
plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white)

strategy.entry("Buy", strategy.long, when=Buy_final)
strategy.close("Buy", when=Sell_final)

もっと