//@version=4 strategy(title="Random Entries Work", shorttitle="REW", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD,commission_type=strategy.commission.percent,commission_value=0) // === GENERAL INPUTS === strategy = input(defval="Long Only",title="Direction",options=["Long Only", "Short Only", "Random"]) enter_frequency = input(defval=10,minval=1,maxval=100,title="Percent Chance to Enter") exit_frequency = input(defval=3, minval=0,maxval=100,title="Percent Chance to Exit",tooltip="This should be much lower than Percent Chance to Enter. Higher values decrease time in market. Lower values increase time in market.") start_year = input(defval=2020, title="Start Year") // === LOGIC === r = random(0,100) enter = enter_frequency > r[0] exit = exit_frequency > r[0] direction = random(0,100) >= 50 // === STRATEGY - LONG POSITION EXECUTION === enterLong() => strategy.opentrades == 0 and enter and (strategy == "Long Only" or (strategy == "Random") and direction) and time > timestamp(start_year, 01, 01, 01, 01) exitLong() => exit strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => strategy.opentrades == 0 and enter and (strategy == "Short Only" or (strategy == "Random" and not direction)) and time > timestamp(start_year, 01, 01, 01, 01) exitShort() => exit strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())
Первый шаг — сделать непонятные системные маркеры более «человекоподобными». Например, пусть маркер высокого риска будет называться BUY CAREFULLY — я по-прежнему могу купить в этом месте, но нужно чётко понимать, что вероятность получить убыток будет максимальной. Сами маркеры стали больше и аккуратнее.
Затем нужно было добавить разделение рынка на «стабильный» и «турбулентный», они обозначены зелёным и красным фоном. Стабильный рынок имеет выраженное восходящее направление движения, а в турбулентном можно получить много ложных сигналов или вовсе попасть в затяжной даунтренд:
Например, набираем портфель произвольный: только лонг, только шорт или в любой иной пропорции.
Если вырос — держим дальше.
Если снизился — переворачиваем в противоположную сторону.
И так плывём по течению, торгуя только свою собственную эквити и пластично подстраиваясь под её сигналы в виде прибыльных или убыточных дней.
Можно ли диагностировать поломку торговой системы следующим образом?
1. Накладываем на эквити коридор из 3 сигм.
2. Поломкой ТС считаем начавшийся частый выход эквити за границы данного коридора?
Это будет означать, что тот участок эквити, что был ранее, не имеет никакого отношения к тому участку, что наступил далее - начался независимый временной ряд.
То есть система утратила контроль над событиями и процесс стал для трейдера неуправляемым.
И, соответственно, если это правило не нарушено, то система в порядке, если даже длительное время не отвечает ожиданиям.
Если Вы торгуете по определённым правилам, то предполагаете, что Ваши действия оказывают некое значимое влияние на колебания эквити. Так как правила одинаковые, то эквити должна находиться внутри коридора 3 сигм.
Плановый слив — системная просадка.
Внеплановый слив — утрата системой контроля над эквити.
Если мы уже много раз отторговали цикл рост-просадка-рост-просадка, то все наши просадки — «плановый слив» — должны укладываться в коридор.