
Основная идея этой стратегии заключается в том, чтобы использовать вводимые стоп-стоп для установления разумного количества стоп-стоп-стоп и управления рисками и доходами для каждой сделки.
Эта стратегия сначала устанавливает случайный входный сигнал, когда SMA14 выходит из SMA28 с лихвой, а когда SMA14 выходит из SMA28 с лихвой.
После входа в игру, стратегия использует функцию moneyToSLPoints, чтобы вычислить количество стоп-пойнтов в зависимости от введенной суммы, а также количество стоп-пойнтов. Таким образом, установка стоп-пойнтов, основанная на сумме в долларах, осуществляется.
Например, если в игре будет сделано 100 дополнительных рук, каждый пункт будет стоить 10 долларов, а стоп-страх будет 100 долларов, то стоп-страх будет 100/10/100 = 0,1 балла.
Наконец, используйте strategy.exit, чтобы установить точку выхода с остановкой на убыль. Одновременно нарисуйте график стоп-линии и стоп-линии в качестве справочника для дебютирования.
Основанная на ценовом стоп-стоп стратегии, наибольшим преимуществом является интуитивное настройка параметров, которая позволяет интуитивно видеть связь между риском и прибылью, производить выбор параметров.
Кроме того, по сравнению с точечным стоп-падом, стоп-пады в долларах лучше контролируют реальные риски. Стоп-пады в долларах лучше защищают средства, когда рыночная волатильность увеличивается.
Однако есть и риск, связанный с такой стратегией:
Если стоп-точка слишком широка, то она легко может быть зафиксирована. Если стоп-точка слишком далеко, то вероятность того, что короткая линия пойдет наперекосяк, значительно выше, и она может быть зафиксирована.
Если остановка находится слишком близко, то нормальная односторонняя торговля не может быть достигнута, и это очень трудно сделать.
Требуется рациональный выбор контрактов. Если выбирать контракт с слишком большой точечной стоимостью, например, нефть, то тот же доллар будет остановлен, а соответствующие баллы будут небольшими и легко могут быть выброшены в рыночных колебаниях. Это требует разумного выбора точечной стоимости.
Эта стратегия может быть оптимизирована в следующих аспектах:
Входные сигналы могут быть оптимизированы, например, в сочетании с тенденциями, волатильностью и сезонностью.
Можно выбрать подходящий стоп-стоп в зависимости от разных сортов. Например, для товаров можно установить более мягкий стоп.
Можно комбинировать частоту колебаний с соответствующим ослаблением стоп-страда при увеличении колебаний; с соответствующим ужесточением стоп-страда при уменьшении колебаний.
Различные стратегии стоп-стопа могут быть выбраны в зависимости от времени в торговом дне. Например, в торговые дни в США может быть более жесткий стоп-стоп, чтобы уменьшить вероятность наложения.
Эта стратегия использует долларовую сумму в качестве параметра, чтобы реализовать интуитивную функцию остановки убытков. Преимущества этой стратегии заключаются в выборе параметров и контроле над капиталом.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov
// @description
//
//@version=4
strategy("Stop loss and Take Profit in $$ example", overlay=true)
// random entry condition
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
moneyToSLPoints(money) =>
strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na
p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)
// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)