
この戦略は”動的値価格変化突破戦略”と呼ばれています.この戦略の主な考え方は,動的値を設定することで,価格変化率がこの値を超えると買入シグナルを生じ,価格変化率がこの値の負値を下回ると売り出そうシグナルを生じます.同時に,この戦略は,価格が前6根のK線の最低値を破るとき,止損を設定します.
この戦略の核心は,現在のクローズアップ価格を前回のクローズアップ価格から減算して1で得られた価格変化率を計算することである.その後,計算された価格変化率をユーザー入力された値と比較し,価格変化率が大きい場合の値に等しい場合,現在ポジションを持っていないか空頭ポジションを持っていない場合は,買入シグナルを生成する.価格変化率が小さい場合の値に等しい負の値の場合,現在ポジションを持っていないか多頭ポジションを持っていない場合は,売出シグナルを生成する.買入シグナルを生成した後,戦略は,最低の6K線をストップロスの位置として記録し,価格がストップロスの値を超えると,戦略は多頭ポジションを平らにする.
“動的値価格変化突破戦略”は,価格変化率と動的値を比較して取引シグナルを生成し,上昇状況で使用するのに適しています. この戦略の論理はシンプルで明確で,ある程度の柔軟性とリスク管理能力を持っています. しかし,この戦略には,頻繁に取引が起こる可能性のある揺れ動的状況,停止損失設定の柔軟性不足などの欠点があります. 将来,より多くの指標の最適化,停止損失設定の最適化,パラメータの最適化,ポジション管理の追加などから戦略の最適化を考慮して,戦略のパフォーマンスをさらに改善することができます.
/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)
change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)
// Calculate price change
priceChange = close / close[1] - 1
// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)
// 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)
var float stop = na
if (buy_condition)
strategy.entry("Long", strategy.long)
stop := lowest(low, 6)
position := 1
if (sell_condition or low < stop)
strategy.close("Long")
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)