Основная идея этой стратегии состоит в том, чтобы использовать перекресток EMA и WMA в качестве сигналов входа, и включить прибыль и остановку потери на основе расчета точек для торговли.
Когда EMA пересекает WMA вверх, генерируется длинный сигнал. Когда EMA пересекает WMA вниз, генерируется короткий сигнал. После ввода позиций цена входа будет рассчитана в режиме реального времени, и на основе этого будут установлены стоп-лосс и прибыль. Например, установите стоп-лосс до 20 пунктов и возьмите прибыль до 100 пунктов, тогда конкретная цена стоп-лосса будет ценой входа минус 20 пунктов * стоимость контракта, а цена прибыли будет ценой входа плюс 100 пунктов * стоимость контракта. Так контролируются риск и прибыль.
В то же время стратегия также будет сочетать текущие рыночные цены с историческими стоп-лоссами, чтобы скорректировать движущуюся позицию стоп-лосса и реализовать последнюю стоп-лосс.
По сравнению с фиксированными точками или процентными стоп-лоссами, наибольшее преимущество этой стратегии заключается в том, что она может очень гибко и точно контролировать риски.
Кроме того, отслеживание стоп-лосса также является очень практичной функцией. Он может отслеживать и корректировать позиции стоп-лосса на основе изменений рынка в режиме реального времени, обеспечивая при этом контроль рисков и максимизируя возможные прибыли.
Основные риски этой стратегии исходят от самих индикаторов EMA и WMA. Когда происходит насильственное движение рынка, они часто дают неправильные сигналы, что легко приводит к стоп-лосс. В этом случае рекомендуется должным образом ослабить количество точек стоп-лосса или рассмотреть возможность замены других комбинаций индикаторов.
Еще один риск заключается в том, что сложно сбалансировать стоп-лосс и прибыль. Преследование более высокой прибыли часто требует принятия больших рисков, что может легко привести к стоп-лос, когда рынок поворачивается. Поэтому конфигурация стоп-лосса и прибыли требует тщательного тестирования и оценки.
Эта стратегия может быть оптимизирована в следующих аспектах:
Основная идея этой стратегии проста и ясна, используя EMA и WMA в качестве основы, и используя механизм стоп-лосса на основе точек и механизм получения прибыли для контроля риска. Преимущество стратегии заключается в точном и гибком контроле риска, который может быть соответствующим образом скорректирован для разных рынков. Последующие оптимизации могут быть выполнены в сигналах входа, выборе параметров, механизме стоп-лосса и т. Д., Чтобы стратегия лучше адаптировалась к сложной и постоянно меняющейся рыночной среде.
/*backtest start: 2024-01-03 00:00:00 end: 2024-01-10 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // inspiration script from: @ahmad_naquib // inspiration script link: https://www.tradingview.com/script/tGTV8MkY-Two-Take-Profits-and-Two-Stop-Loss/ // inspiration strategy script name: Two Take Profits and Two Stop Loss //////////// // Do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //////////// //@version=5 strategy('SL & TP based on Pips', "PIP SL & TP", overlay=true, initial_capital=1000) // MA ema_period = input(title='EMA period', defval=10) wma_period = input(title='WMA period', defval=20) ema = ta.ema(close, ema_period) wma = ta.wma(close, wma_period) // Entry Conditions long = ta.crossover(ema, wma) and nz(strategy.position_size) == 0 short = ta.crossunder(ema, wma) and nz(strategy.position_size) == 0 // Pips Calculation pip1 = input(20, title = "TP PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick pip2 = input(20, title = "SL PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick // Trading parameters var bool LS = na var bool SS = na var float EP = na // Entry Position var float TVL = na var float TVS = na var float TSL = na var float TSS = na var float TP1 = na //var float TP2 = na var float SL1 = na ///var float SL2 = na // SL & TP Values // there's also SL2 and TP2 in case you want to add them to your script, //also you can add a break event in the strategy.entry section. if short or long and strategy.position_size == 0 EP := close SL1 := EP - pip2 * (short ? -1 : 1) //SL2 := EP - pip2 * (short ? -1 : 1) TP1 := EP + pip1 * (short ? -1 : 1) //TP2 := EP + pip1 * 2 * (short ? -1 : 1) // current trade direction LS := long or strategy.position_size > 0 SS := short or strategy.position_size < 0 // adjust trade parameters and trailing stop calculations TVL := math.max(TP1, open) - pip1[1] TVS := math.min(TP1, open) + pip1[1] TSL := open[1] > TSL[1] ? math.max(TVL, TSL[1]) : TVL TSS := open[1] < TSS[1] ? math.min(TVS, TSS[1]) : TVS //if LS and high > TP1 //if open <= TP1 //SL2 := math.min(EP, TSL) //if SS and low < TP1 //if open >= TP1 //SL2 := math.max(EP, TSS) // Closing conditions // and those are a closing conditions in case you want to add them. //close_long = LS and open < SL2 //close_short = SS and open > SL2 // Buy if (long and not SS) strategy.entry('buy', strategy.long) strategy.exit('exit1', from_entry='buy', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit2', from_entry='buy', stop=SL2, limit=TP2) // Sell if (short and not LS) strategy.entry('sell', strategy.short) strategy.exit('exit3', from_entry='sell', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit4', from_entry='sell', stop=SL2, limit=TP2) // Plots // those are plots for the lines of The tp and sl. they are really useful, and in the next update I will use a filling option. a = plot(strategy.position_size > 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) b = plot(strategy.position_size < 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) c = plot(strategy.position_size > 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) d = plot(strategy.position_size < 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) g = plot(strategy.position_size >= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) h = plot(strategy.position_size <= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) // those are plot for the TP2 and SL2, they are optional if you want to add them. //e = plot(strategy.position_size > 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //f = plot(strategy.position_size < 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //those are the plot for the ema and wma strategy for short and long signal. they are not really a good strategy, I just used them as an example //but you have the option to plot them or not. // do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //plot(ema, title='ema', color=color.new(#fff176, 0)) //plot(wma, title='wma', color=color.new(#00ced1, 0))