% 変化バーチャート バックテスト戦略

作者: リン・ハーンチャオチャン開催日:2023年11月15日 15:41:20
タグ:

img

概要

この戦略は,Nバー前の閉じる価格と比較して現在のバーの閉じる価格のパーセント変化を計算し,トレンドを決定するために異なる色のヒストグラムバーを表示します.入口と出口を決定するためにトレンドラインを使用します.

戦略の論理

  1. 入力経由で戦略パラメータを設定し,バー幅,表示価格変化またはパーセント変化,見直し期間,購入/販売の限界値などを含む.

  2. 現在のバーの閉じる価格とNバー前の閉じる価格の価格差またはパーセント差を計算する.

  3. 購入・販売の限界線を設定する.

  4. %変化に基づいて異なる色でヒストグラムバーを表示します.

  5. %変化が買い値を超えると長値に設定し,売り値を下回ると短値に設定します.

  6. 位置方向に応じてヒストグラムバーを色付けます

  7. 位置方向に基づいて 入口と出口

利点

  1. 意思決定のための価格変動傾向の直感的な表示

  2. トレンドインジケーターと組み合わせた 明確なエントリー・アウトリース信号

  3. パラメータは,異なる製品と時間枠に最適化できます.

  4. シンプルで明快な論理で 分かりやすく修正できます

  5. トレンド判断を迅速にするために良い視覚化です.

リスク

  1. 誤った信号が発信されやすいため 誤った入口選択は損失につながる可能性があります

  2. パラメータは高変動性製品に調整する必要がある.そうでなければ損失の確率が増加する.

  3. 突発的な出来事も 報告されていません

  4. 短いバックテスト期間では,パラメータの安定性を決定することができない場合があります.

  5. 止まる時間がないのに 逆転の機会を逃した

リスクはパラメータ最適化,他の指標とのシグナルフィルタリング,ストップ・ロスト,バックテスト期間拡大などによって制御できます.

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

  1. 傾向指標や波動性指標などの他の指標と組み合わせて 信号を確認してみてください

  2. パラメータ設定を最適化するための機械学習アルゴリズムを導入します

  3. ダイナミックストップ・ロスを設定し,単一の損失額を制御する.

  4. 感情指標やニュースを含めて 急な影響を避ける

  5. 取引時間やセッションフィルターを追加します.

  6. バックテスト期間を長時間枠で最適化します

概要

この戦略はヒストグラムバーでリアルタイムで価格変化パーセントを表示し,決定のためにトレンドラインを使用し,明確な取引信号を形成する. 論理は操作が簡単である. しかし,リスクは存在し,最適化,フィルタリング,ストップ損失などによって制御する必要があります. 継続的な最適化により,理解しやすく実践的なトレンドフォロー戦略になり得ます.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

もっと