
Эта стратегия использует пересечение двух движущихся средних для определения рыночных тенденций, открывая позиции, когда они пересекают долгосрочные движущиеся средние по краткосрочным движущимся средним, и, наоборот, открывая позиции. В то же время, эта стратегия использует многоуровневый метод заканчивания прибыли, когда цены достигают заданного уровня прибыли, и, таким образом, максимизирует прибыль и контролирует риск.
В основе этой стратегии лежит использование движущихся средних различных циклов для захвата рыночных тенденций. Когда краткосрочные движущиеся средние пересекают долгосрочные движущиеся средние, это означает, что рынок может войти в восходящий тренд, и в это время открывается много позиций; когда краткосрочные движущиеся средние пересекают долгосрочные движущиеся средние, это означает, что рынок может войти в нисходящий тренд, и в это время открываются пустые позиции.
Стратегия пересечения скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления ско
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
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/
// © ValdesTradingBots
//Follow Us for More Insights and Updates!
//Join our community and be the first to know about our new releases and trading tips
//Facebook Group: Join our vibrant community at https://www.facebook.com/groups/707469081464839/
//Twitter: Follow us for quick updates and insights at https://twitter.com/ValdesBots
//We're excited to have you with us!
//@version=5
strategy("Valdes Trading Bots MA Cross with Multiple Take Profits", overlay=true)
shortPeriod = input(18, title="Short MA Period")
longPeriod = input(32, title="Long MA Period")
// Take Profit Settings
tp1Enabled = input(true, title="Enable Take Profit 1")
tp1Perc = input(15, title="Take Profit 1 (%)") / 100
tp1QtyPerc = input(25, title="Take Profit 1 Qty (%)") / 100
tp2Enabled = input(true, title="Enable Take Profit 2")
tp2Perc = input(30, title="Take Profit 2 (%)") / 100
tp2QtyPerc = input(25, title="Take Profit 2 Qty (%)") / 100
tp3Enabled = input(true, title="Enable Take Profit 3")
tp3Perc = input(45, title="Take Profit 3 (%)") / 100
tp3QtyPerc = input(25, title="Take Profit 3 Qty (%)") / 100
tp4Enabled = input(true, title="Enable Take Profit 4")
tp4Perc = input(60, title="Take Profit 4 (%)") / 100
tp4QtyPerc = input(25, title="Take Profit 4 Qty (%)") / 100
shortMA = ta.sma(close, shortPeriod)
longMA = ta.sma(close, longPeriod)
// Determine the trend
uptrend = shortMA > longMA
downtrend = shortMA < longMA
// Assign candle colors based on the trend
candleColor = uptrend ? color.rgb(9, 112, 0) : downtrend ? color.rgb(255, 0, 0) : color.new(color.blue, 0)
plot(shortMA, title="Short MA", color=color.rgb(9, 112, 0))
plot(longMA, title="Long MA", color=color.rgb(255, 0, 0))
// Create a cross signal
longCross = ta.crossover(shortMA, longMA)
shortCross = ta.crossunder(shortMA, longMA)
// Strategy entry
if (longCross)
strategy.entry("Long", strategy.long)
if (shortCross)
strategy.entry("Short", strategy.short)
// Strategy take profit
if (tp1Enabled and strategy.position_size > 0)
strategy.exit("TP1 Long", "Long", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 + tp1Perc))
if (tp1Enabled and strategy.position_size < 0)
strategy.exit("TP1 Short", "Short", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 - tp1Perc))
if (tp2Enabled and strategy.position_size > 0)
strategy.exit("TP2 Long", "Long", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 + tp2Perc))
if (tp2Enabled and strategy.position_size < 0)
strategy.exit("TP2 Short", "Short", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 - tp2Perc))
if (tp3Enabled and strategy.position_size > 0)
strategy.exit("TP3 Long", "Long", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 + tp3Perc))
if (tp3Enabled and strategy.position_size < 0)
strategy.exit("TP3 Short", "Short", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 - tp3Perc))
if (tp4Enabled and strategy.position_size > 0)
strategy.exit("TP4 Long", "Long", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 + tp4Perc))
if (tp4Enabled and strategy.position_size < 0)
strategy.exit("TP4 Short", "Short", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 - tp4Perc))
// Plotting the signals on the chart
plotshape(series=longCross, title="Long Cross", location=location.belowbar, color=color.rgb(9, 112, 0), style=shape.triangleup, size=size.small)
plotshape(series=shortCross, title="Short Cross", location=location.abovebar, color=color.rgb(255, 0, 0), style=shape.triangledown, size=size.small)
// Apply candle color
barcolor(candleColor)