Нужно переписать существующего робота "Grader_od_team_v23.mq4" для торговли на Криптобиржах и Форекс, чтобы корректно работал с MT4 и со временем можно было организовать работу в том числе в MT5 (говорят, там тестер стратегий лучше). :-) Логика работы у советника по принципу мартингейла и похожа на мод всем известных советников "Бульдозер" и "Илан". (может выставлять серию ордеров как в одну так и в обе стороны где первый лот 0.01 и затем: 0.02, 0.04, 0.08). Чтобы не набирать "лишних" лотов в просадке советник анализирует свечи и имеет фильтр MA. Желательно чтобы логика советника была исполнен в основном теле файла как сейчас у старого, а дополнения имели модульный принцип построения. Т. е. заложить изначально функцию подключения например биржу Bittrex или Poloniex (пока хватит и одной популярной биржи), а затем за отдельную плату добавляя модули, конфиги и API подключать со временем другие биржи (Yobit, Binance, Exmo, Bitfinex, Cryptopia, Tradesatoshi) и индикаторы. Как пример реализации серверный робот Gbot - https://github.com/steeply/gbot-trader/tree/master/build/api со списком поддерживаемых бирж: bitfinex.js bittrex.js poloniex.js wex.js Необходимые дополнения и изменения в роботе "Grader_od_team_v23.mq4": 1. В секции "Lot Settings" добавить функцию: LotType = 1 - в %, если 2 - в торгуемой валюте, если 0 - отключено т. е. если стоит значение 1, то ордера рассчитываются в процентах, если 1 - в торгуемой валюте, если 0 - отключено то есть как обычно в пунктах (Points) 2. Добавить "виртуальный" режим просадки Добавить функцию LotStart = 3; // после какого колена включать торговлю реальными ордерами Т. е. построить работу советника таким образом - до значения LotStart робот не проставляет реальные настоящие ордера в рынок, а работает в так называемом "виртуальном" режиме, условно говоря как на демо-счете: для визуализации чертит пунктиром горизонтальные линии с указанием взятых лотов (линия зеленого цвета лонг и рядом написано id сделки и 0,01 лот, затем например противоположная серия началась красная шорт 0,01 лота) Когда наступает значение LotStart = 3 он проставляет наконец реальный ордер в рынок соответствующим объемом 0,04 (0.08, 0.16 следующие для 4 и 5 колена соответственно). Смысл в том чтобы допускать просадку сначала "виртуальными" не настоящим ордером, а на откате рынка ближе к концу подставлять реальный "жирный" лот. При этом не будет старых "зависших" ордеров 0,01-0,02 которые обычно и так просадочные-бесполезные (кроются либо с минусом либо с мин. Профитом). Только нужно обязательно проверить функцию чтоб удаление вручную и автоматически одного из ордеров серии (хоть настоящего хоть виртуального) проверялось и сразу автоматически пересчитывался общий тейк-профит серии. 3. Поподробнее разобраться и расписать блок "PipStep Settings" Сейчас в коде прописано, что советник делая последующие ставки "анализирует" цвет и чередование свечей (ключевая особенность этого робота от Бульдозера и Илана). Например идет затяжное падение рынка - и весь день 4 часовые (H4) свечи подряд закрашиваются черным. Советник в этот момент ждет и не делает "лишних" ставок в рынок. Когда падение прекращается и появились первые белые свечи на рост (т. е. рынок делает попытку разворота), тогда советник уже и вставляет следующий ордер. Нужно вот этот механизм описать в функциях и настройках. Потому что сейчас мне не совсем понятно за что отвечают функции: PipStepCandles = 24; // сколько свечей анализировать PipStepTF = 2; // таймфрейм графика и там нельзя задать вручную для тестера стратегий какое же все таки сочетание чередования свечей лучше на конкретном рынке и валюте. Возможно стоит переделать этот блок таким образом: PipStepCandles = 4; // сколько свечей анализировать PipStepCandle1 = 1; // первая свеча, 1 - черная, если 0 - белая PipStepCandle2 = 0; // вторая свеча, 1 - черная, если 0 - белая PipStepCandle3 = 1; // третья свеча, 1 - черная, если 0 - белая PipStepCandle4 = 0; // четвертая свеча, 1 - черная, если 0 - белая ...тут возможность добавления еще свечей вплоть до достижения параметра PipStepCandles, хоть до десяти PipStepCandle10 = 1; // десятая свеча, 1 - черная, если 0 - белая PipStepTF = 0; // таймфрейм графика: 1-M1, 2-M5, 3-M15, 4-M30, 5-H1, 6-H4, 7-D1, 8-W1, 9-MN, если 0 - текущий сейчас в основном анализируется текущий график (это не прописаное положение 0 я так понимаю), потому что я переключаю например с H4 на дневной D1 и советник правильно анализирует и торгует уже дневные свечи) 4. В секции "TakeProfit Settings" Нужно проверить корректность выставления линий тейк-профита для криптовалют, т. к. запускал я этого старого робота на паре BTC/USD в Финаме (Just2Trade) и там тейк-профит в пунктах было необходимо писать как 10000 пунктов и больше, что не совсем удобно. Возможно для удобства нужно считывать функцию LotType, чтобы профит рассчитывался от значения: если значение 1, то тейк профит рассчитывается в % роста от текущей цены торгуемой валюты если стоит 2, то тейк рассчитывается в торгуемой валюте (например BTC/USD текущая цена 5000$, тейк указываем 1000 - и хотим чтоб закрылся через 1000$ на отметке 6000$) если 0 - функция отключена, то есть тейк как обычно в пунктах (Points) 5. В трале "Trailing Settings" есть ряд "родовых" травм, поэтому этот блок перепроверить и возможно переписать нужно. Главное - это убрать ошибку простановки трала хуже цены открытия (ввести какую то дополнительную проверку условия срабатывания/передвижения трала). Например я включил трал с 1 колена (TrailingStart = 1) и робот проставил первый ордер Buy BTC/USD по 8100$. Затем цена ушла выше на 8140$ - сработал трейлинг как положено, но робот почему то выставляет трал НИЖЕ цены покупки - на 8099 Т. е. мало того что робот не защитил прибыль - так еще на откате фиксанул мне убыток. :-( Возможно это происходит из-за того что неправильно расчитывается спрэд или минимально возможный тейк брокера. Нужно такую ошибку исключить дополнительной проверкой и заданием уровня проскальзывания (???) у всего робота. Также для крипто биржи стоит учитывать значение из блока настроек API биржи - комиссия от сделки 0,2% например - робот учитывает и ставит тейки и тралы выше заданнй уровень + сумма комиссии. Также из вышеописаного блока про тейк-профит, нужно чтоб трал учитывал значение LotType, защищал прибыль в процентах/в торгуемой валюте или в пунктах. 6. Блок "Filter Settings" Это линия MA, которая служит дополнительным фильтром, чтоб робот не набирал "лишние" колена в просадке. Особенно бывает полезно на малых таймфреймах, когда чередование свечей для простановки ордеров дает слишком много ложных сигналов. Если включено то по условию когда цена пересекает MA на заданное количество пунктов - робот определяет что рынок действительно делает попытку "разворота" и ставит ордер. Функция вроде работает корректно, надо только дописать ее чтобы учитывалось опять же значение LotType цена отходит от MA в процентах/в торгуемой валюте/в пунктах. 7. В "Trade Settings" обращу внимание на еще один защитный механизм чтоб не набирать лишние колена. Переход советника на торговлю на более старший тайфрейм при набирании скажем 3 колена по H4 переходим на торговлю дневными свечами (D1). Функция если включена должна работать корректно, даже если я переключаю графики и торговлю в терминале на любые другие. 8. В блоке сигналы "Signals Settings" в функции MinSignal при значении = 0; нужно чтоб он проставлял первый ордер СРАЗУ же так как я бывает вручную запрещаю советнику торговать в шорт (ставлю только Лонг), а он для старта сидит ждет когда сменится свечка (если это 4 часа или если дневная, то будет вообще долго ждать следующие сутки). После появления свечи робот получает случайный сигнал, но он может оказаться в шорт (а у меня он запрещен в терминале вручную) - и он опять будет сидеть ждать следующей свечи H4, пока случайный сигнал не выпадет на Лонг. Поэтому надо переделать значение 0 = на мгновенный старт сразу. При этом значении сигнал на открытие ордеров дается в обе стороны (виртуального или реального не важно). Настройки индикаторов RSI, MA, CCI для окрытия первого ордера - их надо просто проверить, вроде работали корректно. Если стоит например MinSignal = 2; то он ждет подтверждения сигнала от двух индикаторов и только потом проставляет первый ордер. ---- Касательно модуля крипто-торговли. Возможен для крипты нужен еще отдельный блок настроек как например у серверного робота Gbot https://gbot-trader.herokuapp.com/configurator EXCHANGE=wex Биржа NAME_COIN=BTC Валюта 1 NAME_COIN_TWO=USD Валюта 2 и т. д. Хотя может есть возможность подгружать список множества монет и график как с обычного Форекс брокера. У меня есть в принципе возможность сделать сервер с БД, чтобы загрузить туда свой архив котировок и туда MT подключался. Также потом возможно за доп. плату понадобится бот в Telegram с уведомлениями как у Gbot. Также интересно как на криптобиржах решить проблемы с большими разрывами в стакане (между Buy/Sell) и гораздо меньшей ликвидности на крипте, нежели чем "рисуют" Форекс брокеры. То есть нужна реальная проверка простановки ордеров и что робот должен делать если в продаже нет скажем целой 1 монеты BitCore (BTX) по цене 10$, а есть только 0,7 монеты. Он проставит ордер, часть исполнится и будет ждать или попытается по рыночной в неком диапазоне выкупить 2-3 ордера в стакане? В общем по крипте есть некоторые различия в ликвидности и нужно обязательно это учесть.