
このストラテジーは,シンプル・ムービング・エーバーン (SMA) の交差に基づく自動取引システムであり,ダイナミックなストップとストップ・ロスの仕組みを組み合わせている.これは,2つの異なる周期のSMAを使用し,それらの交差によって買入と売却のシグナルを生成する.同時に,ストラテジーは,リスクを制御し,利益をロックするためにパーセントベースのストップとストップ・ロスのレベルを設定する.
この双均線交差に基づく取引戦略は,自動取引を始める初心者にとって,シンプルで効果的な枠組みを提供します. それは,トレンド追跡とリスク管理の要素を組み合わせて,動的にストップ・ロスを設定することで資金を保護します. しかし,実際の取引でよりよい効果を得るために,さらなる最適化と改善が必要です.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pubgentleman
//@version=5
//@version=5
strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true)
// Parameters
shortSmaLength = input.int(50, title="Short SMA Length")
longSmaLength = input.int(100, title="Long SMA Length")
takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit
stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss
// Calculate SMAs
shortSma = ta.sma(close, shortSmaLength)
longSma = ta.sma(close, longSmaLength)
// Plot SMAs
plot(shortSma, color=color.blue, title="Short SMA")
plot(longSma, color=color.red, title="Long SMA")
// Entry Conditions
longCondition = ta.crossover(shortSma, longSma)
shortCondition = ta.crossunder(shortSma, longSma)
// Trade Management
var float entryPrice = na
var float takeProfitLevel = na
var float stopLossLevel = na
if (longCondition)
entryPrice := close
takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100)
stopLossLevel := entryPrice * (1 - stopLossPerc / 100)
strategy.entry("Long", strategy.long)
label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white)
if (shortCondition)
entryPrice := close
takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100)
stopLossLevel := entryPrice * (1 + stopLossPerc / 100)
strategy.entry("Short", strategy.short)
label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white)
// Exit Conditions
if (strategy.position_size > 0)
if (close >= takeProfitLevel or close <= stopLossLevel)
strategy.close("Long")
if (strategy.position_size < 0)
if (close <= takeProfitLevel or close >= stopLossLevel)
strategy.close("Short")
// Plot Take Profit and Stop Loss Levels
plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline)
plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline)
plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline)
plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)