Spezifikation
Нужно взять стратегию на Pine с TradingView. Название "Heikin Ashi Strategy [Krypt]". Исходный код ниже:
strategy("Heikin Ashi Strategy [Krypt]", shorttitle="HA Strategy [Krypt]", overlay=true) res = input(title="Heikin Ashi Candle Time Frame", type=resolution, defval="60") hshift = input(1,title="Heikin Ashi Candle Time Frame Shift") res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180") mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift") fama = input(1,"Heikin Ashi EMA Period") test = input(1,"Heikin Ashi EMA Shift") sloma = input(30,"Slow EMA Period") slomas = input(1,"Slow EMA Shift") logtransform = input(false, "Log Transform") stoploss = input(true, "Stop Loss") showplots = input(true, "Show Plots") ha_t = heikinashi(tickerid) ha_close = security(ha_t, res, logtransform ? log(close[hshift]) : close[hshift]) mha_close = security(ha_t, res1, logtransform ? log(close[mhshift]) : close[mhshift]) fma = ema(mha_close[test], fama) sma = ema(ha_close[slomas], sloma) plot(showplots ? (logtransform ? exp(fma) : fma) : na, title="MA", color=#0094ff, linewidth=2, style=line) plot(showplots ? (logtransform ? exp(sma) : sma) : na, title="SMA", color=#ff6a00, linewidth=2, style=line) golong = crossover(fma, sma) goshort = crossunder(fma, sma) strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na)) strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))
На графике в Metatrader, также рисуем все визуально, как и в Trading View.
В советнике должны быть все настройки из скрина в приложении. А также Magic Number, Проскальзывание, Тип лота (Фиксированный/Процент от депозита), время работы, stop loss.
Тип лота Процент от депозита должен корректно рассчитываться для CFD/валютных пар Форекс, крипты (ByBit брокер) и акций/фьючерсов мск биржи (Открытие брокер).
Время работы - При окончании времени работы все позиции принудительно закрываются. Если время работы не указано, то ничего не закрываем.
Stop loss - Если стоп указан, то закрываем позицию по стопу и далее открываем новую позицию, когда поступит новый сигнал на открытие. Если стоп не указан, то просто по условиям стратегии.
На выходе нужно 2 исходника на MQL 4 и 5.
Предлагаю сначала сделать под 5 версию. Далее я протестирую что все ок, и перенесем под 4, чтобы не править по 10 раз одно и то же в разных файлах.