
この戦略は,移動平均を取引信号として使用し,ユーザーにカスタマイズされたストップ・ストップ比率と組み合わせて,完全な指標駆動型のストップ・ストップ戦略を実現します. この戦略は,自動的に入場,ストップ・ストップ,人工介入を必要とせず,自動取引に適しています.
この戦略の核となる論理は
3サイクルSMAを取引シグナルとして使用し,SMA上の0を突破すると多し,SMAの下の0を突破すると空し;
ユーザは,入場後,ストップ・ロスの比率とストップ・ストップの比率をカスタマイズすることができます.
入場価格とユーザー設定の割合に応じて,自動でストップラインを設定する.
入場料とユーザの設定による停止線を自動的に設定する.
価格がストップラインに触れたときの自動ストップ; 価格がストップラインに触れたときの自動ストップ;
ストップ・ストップ・オーダーは,平仓後に自動的に取り消されます.
具体的には,戦略はsma関数を使って3周期の移動平均を計算し,その値をma変数に代入する.
次に,多頭入場線longを計算し,その値は,ma+maの百分数loである. loは,ユーザが調整できるパラメータで,多時入場線偏移量を表現する.
ma が 0 に乗ると,入札を開始し,strategy.entry 関数で入札し,入札価格は long になります.
また,ストップとストップの価格を設定します. ストップの価格は入場価格のsl%を引いた入場価格です. slはユーザが調整できるパラメータで,ストップの割合を表します. ストップの価格は入場価格のtp%を足した入場価格です.
strategy.entry関数を使用して,ストップ・ロードとストップ・ロードをそれぞれ設定します. 価格がストップ・ロードラインに触れたら,自動的にストップされます. 価格がストップ・ロードラインに触れたら,自動的にストップされます.
ストップ・ロスト・オーダーを strategy.cancel 関数で自動的にキャンセルする.
この戦略は以下の利点があります.
自動化が進んでおり,人工の介入も必要なく,自動取引に適しています.
リスク管理のためのカスタマイズ可能なストップ・ダスト・ストップ比率
取引の信号は指標から来るので,偽の突破を避ける.
視覚的な止止損は直視的に見えます.
戦略の論理は明確でシンプルで,実行は分かりやすい.
この戦略にはいくつかのリスクがあります.
指標が偽信号を生成するリスク. 解決策はパラメータを最適化して,指標の安定性と信頼性を確保することです.
ストップ・ストップの比率は不合理に設定され,過度に緩やかまたは過度に激進的かもしれない. 解決策は,異なる市場に対してストップ・ストップのパラメータを調整することです.
突破入場は簡単に騙されやすい. 解決策は,トレンド,量指標などの入場シグナルをフィルタリングすることです.
撤回は大きいかもしれない. 解決策は,ポジション基準を下げること,またはストップロスを追跡すること.
この戦略は以下の点で最適化できます.
移動平均のパラメータを最適化し,信頼性を高めること.
入場条件を最適化し,偽突破を回避し,追加価格確認を行う.
ダイナミックストップ,ストップトラッキングなど,ストップストップ戦略の最適化.
資金管理の最適化,ポジション基準の調整,単一リスクの低減
フィルタリングの入場タイミングを最適化し,トレンド,抵抗位などの指標を支える.
ピラミディングに参加して,儲け率を上げる戦略を練りましょう.
特定の品種に対してパラメータを最適化する.
この戦略は,指数駆動型の止損策として,取引自動化,リスク管理の利点があり,定量取引に適しています. しかし,指標パラメータの最適化,入場フィルタ,止損策,資金管理などの最適化が必要な方向もあります. 全体的に,この戦略は,シンプルで信頼性の高い取引技術的枠組みを提供し,その基礎で拡張され,最適化され,より強力な戦略にすることができます.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-11-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("example for panel signals", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//https://www.tradingview.com/script/m2a04xmb-noro-s-shiftma-tp-sl-strategy/
//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")
//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)
//Orders
avg = strategy.position_avg_price
if ma > 0
strategy.entry("Long", strategy.long, limit = long)
strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
//Cancel order
if strategy.position_size == 0
strategy.cancel("Take")
strategy.cancel("Stop")
//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)
//
disp_panels = input(true, title="Display info panels?")
h=high
info_label_off = input(20, title="Info panel offset")
info_label_size = input(size.large, options=[size.tiny, size.small, size.normal, size.large, size.huge], title="Info panel label size")
info_panel_x = timenow + round(change(time)*info_label_off)
info_panel_y = h
info_title= "-=-=-=-=- Info Panel -=-=-=-=-"
info_div = "\n\n------------------------------"
a = "\n\ Long : " + tostring(long)
b = "\n\ Stop loss : " + tostring(stop)
c = "\n\ TP : " + tostring(take)
// info_text = a+c+b
// info_panel = disp_panels ? label.new(x=info_panel_x, y=info_panel_y, text=info_text, xloc=xloc.bar_time, yloc=yloc.price, color=color.yellow, style=label.style_labelup, textcolor=color.black, size=info_label_size) : na
// label.delete(info_panel[1])