ハイキン・アシ - 0.5% 短期取引戦略の変更

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

img

概要

これは,ハイキン・アシ閉値の0.5%変化に基づいて購入・売却シグナルを発行する短期間の取引戦略である.これは,ハイキン・アシキャンドルストイックチャートにのみ適しており,2時間,1時間,30分間の期間で最適に動作する.

戦略の論理

この戦略の基本的な論理はハイキン・アシの閉じる価格が前のキャンドルストイックと比較して0.5%上昇するとロング; ハイキン・アシの閉じる価格が前のキャンドルストイックと比較して0.5%低下するとショート.

具体的には,戦略はまず,現在の閉店価格と以前の閉店価格の間の割合変化を計算します.priceChange = close / close[1] - 1もしpriceChange >= 0.005長い信号が発信されます.priceChange <= -0.005短信号が発信されます.

シグナルを発行する際,戦略は既存のポジションがあるかどうかを判断する.既にポジション (ロングまたはショート) にある場合は,シグナルが繰り返されない.ポジションがない場合は,購入または販売条件に基づいてオープンポジションのシグナルを発行する.

最後にplotshapeグラフ上の買い/売シグナルを表示するために使用されます.

利点

  • ハイキン・アシ・レートの変化を取引信号として利用し,単純な移動平均などよりも価格傾向の変化を把握します.
  • 0.5%の価格変動に基づいて信号を発信し,非常に敏感で短期取引に適しています
  • とてもシンプルで直線的な論理で 分かりやすく実行できます
  • 複数のタイムフレームに適用可能で,高度に柔軟性があります

リスク と 解決策

  • 市場騒音や誤った信号に 傾向がある.
    • 誤った信号率を下げるために1%または2%の変化に反応するようなパラメータを調整
  • 過剰に敏感で,頻繁に高額な手数料を負う可能性があります
    • 高頻度取引を避けるため,保持期間を調整します.例えば,取引ごとに最低2時間.
  • 図表を乱す多くのグラフィックマーカー
    • 図形を隠し,戦略ログからの信号のみを確認する

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

この戦略を最適化するための主な側面:

  1. 最適なパラメータを見つけるため,市場の変動と取引スタイルに基づいて価格変化の値を調整する
  2. ストップ・ロスを取り入れると,取引ごとに最大損失パーセントを制限する.
  3. 統合中に不必要な取引を避けるため,他の指標とフィルターを追加する.
  4. 固定量,指数値,グリッド取引などのためのポジションサイズを導入します.
  5. 入場メカニズムを最適化し,フラッシュを避け,トレンドまたは反トレンドで取引する

結論

簡単に言うと,これは非常にシンプルで,低パラメータで,短期間の取引戦略を理解しやすいものです. 高周波トレーダーに適した非常に速い価格変化を捕捉します. しかし,コストを削減するために取引数を制御する必要があります. いくつかの最適化方法により,さらに良い結果を達成することができます.


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

//@version=4
strategy("Heikin-Ashi - Change 0.5% short Time Period", shorttitle="Heikin-Ashi - Change 0.5% short Time Period", overlay=true)

// Calculate 0.5% price change
priceChange = close / close[1] - 1

// Buy and Sell Signals
buyp = priceChange >= 0.005
sellp = priceChange <= -0.005

// Initialize position and track the current position
var int position = na

// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)

if buy_condition
    strategy.entry("Buy", strategy.long)
    position := 1

if sell_condition
    strategy.entry("Sell", strategy.short)
    position := -1

// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


もっと