Singing Snake About Trend
- Эксперты
- Версия: 1.1
- Обновлено: 17 июля 2025
- Активации: 5
Этот советник по идее мартингейл, но не совсем мартингейл. По началу я хотел скрыть его логику, но,введу того, что мне с настройками все-равно частично придется раскрывать его характеристики и в одном месте придется указать его параметры что бы у покупателей не возникало путаницы в логике, так как программисты, на мой взгляд, немного отличаются от обычных людей своей логикой мышления, и, именно по этому, лично я, постараюсь в описании больше раскрыть работу этого советника.
Начну с того, что, я установил этому советнику лимит от полной суммы баланса счета и советник будет открывать сделки только пока ему будет достаточно для торговли этой суммы установленного лимита. Тут надо знать то, что сам лимит от маржинкола не спасет, если советник уйдет в просадку и не будет открывать ордера, но так как он будет нести по своим открытым сделкам убыток, то в конечном счете советник все-равно сольет весь капитал вашего счета. И по этому, есть ситуации, при которых, лучше предоставить советнику торговать. Отключить лимит можно, если указать в настройках советника в поле Limit - 1.0 (единицу). Параметр Limit - это деление вашего баланса на счету на указанное число. Допустим, на вашем счету баланс 10000 долларов и если вы в поле Limit укажите число 10.0, то советник будет открывать свои сделки на 1000 долларов, вся остальная сумма вашего счета будет служить страховкой для просадки, так как всем известно что цена возвращается туда, где была ранее и через какое-то время все вернется на круги своя и все заработает опять как надо. Терпение.
Теперь почему советник не совсем мартингейл? Потому-что у него нарушена изначальная логика этому умозаключению и советник в своей работе имеет совсем другую и целенаправленную логику. То есть, если мартингейл открывает сделки и при проигрышной позиции увеличивает свою ставку, то этот советник поступает так же, но, открыв сделку, допустим на покупку BUY и не достигнув намеченной прибыли указанной в настройках как параметр closeall, где надо будет указать сумму прибыли, при достижении которой советник будет закрывать все сделки открытые советником, а уйдя в убыток, в просадку, советник будет ожидать следующих указаний указанных в настройках, по которым, все что указано как (Buy), на самом деле будет относится к ордерам на продажу - SELL, так как советник будет пытаться закрыть ранее открытый ордер на покупку с помощью открытия ордеров на продажу и вот к ним советник будет применять метод мартингейл. (К стати, этот параметр мартингейла тоже можно будет отключить, если в настройках советника, в указанных параметрах указать 1 - единицу и тогда советник будет открывать все ордера одним указанным в настройках лотом). Это и есть его основная логика. То есть, если советник уходит в убыток по ранее открытому ордеру, допустим, на покупку, то, что бы закрыть этот ордер на покупку с прибылью, советник будет пытаться открывать ордера на продажу и сумма ордеров на продажу должна превышать суммы открытого ордера на покупку и его просадки. И вот для закрытия ордера на покупку, советник использует мартингейл открывая противоположные ордера первому открытому ордеру. Тут есть еще одна такая мало заметная логическая деталь, что два открытых ордера BUY и SELL при колебании текущей цены будут всегда мешать друг другу и это не всегда плохо, так как если один ордер уходит в убыток, допустим на покупку, то другой ордер на продажу будет уходить в прибыль и мешать ордеру на покупку словить маржинкол. И вот этот советник использует эту помощь в своих целях. И это можно будет использовать самому, допустим указать лот 0.5, другой параметр противоположного ордера тоже указать 0.5 и мартингейл указать как 2.0. Что тогда будет происходить? А произойдет следующее: Первый ордер на покупку будет открыт лотом 0.5 и если текущая цена будет ползти вверх, то по указанной в настройках прибыли советник будет закрывать ордера с прибылью и открывать их вновь. Тут надо добавить что советник работает по времени, параметры которого тоже есть в настройках. И если вы укажите время работы советника с 0 часов до 10 часов и цена за это время будет ползти вверх, то все ордера на покупку лотом 0.5 будут закрыты с прибылью указанной в настройках. Но, если после открытия ордера на покупку, текущая цена не достигнув указанной прибыли развернется и начнет свое движение вниз, то по указанным параметрам в настройках будет открыт ордер на продажу что бы закрыть ордер на покупку с прибылью. При такой ситуации, ордер на продажу будет открыт меньшим лотом чем был открыт первый ордер на покупку, а это плохо, так как мы не ожидаем закрытия ордера на покупку и открытый ордер на продажу меньшим лотом не закроет ордер на покупку большим лотом. Значит нужен мартингейл. Или хотя бы сеть ордеров открытых одним лотом, но что бы сумма открытых ордеров на продажу была больше суммы открытого ордера на покупку плюс просадка. А тут ордер на продажу откроется лотом 0.25 и, если указать 1 (единицу) что бы открывалась сеть ордеров, а ордера на продажу будут открываться в сторону первого открытого ордера на покупку, то в любом случае надо сделать большое расстояние между первым открытым ордером на покупку и последующим ордером на продажу который будет пытаться его закрыть. Так же, если мы этот ордер на продажу открываем малым лотом, то нам нужна будет в худшем случае сеть ордеров, а последующие ордера на продажу будут открываться выше первого открытого ордера на продажу и это тоже указывает на большое расстояние... хотя тут все будет зависеть от случая обстоятельств. Хотя, надо признать что у валютных пар есть колебания цены и это как руководство в настройках. То есть, если найдешь настройками советника колебания валютной пары, то плюс минут советник всегда будет работать в прибыль и хороший брокер всегда предупредит, когда настанет критическая ситуация для счета и предложит пополнить баланс, так как это обстоятельство в его интересах тоже. И, при такой настройке советника, есть вероятность того что второй открытый противоположный ордер меньшим лотом уйдет в прибыль, а просадка первого будет увеличиваться и цена очень долго не сможет вернутся обратно и начать выстраивать сеть ордеров что бы закрыть все ордера с прибылью. Так что тут все на усмотрение владеющего этим советником.
Потом, что еще надо знать в настройках советника? Что по времени у него работает только открытие первого ордера и второго противоположного. Что параметр closeall влияет на расстояние закрытия ордеров. Это своего рода профит. P.S: Здесь есть логотипы-скриншоты с валютной парой EURUSD с периодом H1, их два логотипа: один с умеренными настройками советника, а другой с более агрессивными настройками. Можно посмотреть их, сравнить и прийти к каким-либо выводам.
extern double Lots = 0.2; лот (цена) по какой будет открыт ордер extern int TakeProfit = 300; этот параметр не работает extern int Slippage = 50; проскальзывание extern int Magic = 7777; магический номер ордеров extern int Magic2 = 7778; магический номер ордеров // extern double closeall = 10.0; закрытие ордеров с прибылью // extern int morningBuy = 0; время когда будет открыт первый ордер на покупку и если текущая цена развернется и уйдет в просадку, то советник будет пытаться открыть противоположный ордер на продажу что бы закрыть ордер на покупку extern int eveningBuy = 10; время, до какого часа будут открыты два ордера на покупку и продажу extern int morningSell = 0; время когда будет открыт первый ордер на продажу и если текущая цена развернется и уйдет в просадку, то советник будет пытаться открыть противоположный ордер на покупку что бы закрыть ордер на продажу extern int eveningSell = 10; время, до какого часа будут открыты два ордера на продажу и и покупку // extern int StopDistanceBuy = 350; расстояние открытия второго ордера на продажу от цены открытия первого ордера на покупку extern int StopDistanceSell = 1000; расстояние открытия второго ордера на покупку от цены открытия первого ордера на продажу // extern int GridPitchBuy = 100; расстояние от последней цены открытого ордера на продажу, если открыт первый ордер на покупку extern int GridPitchSell = 50; расстояние от последней цены открытого ордера на покупку, если открыт первый ордер на продажу // extern double PowerClosureBuy = 2.0; увеличение лота второго открытого ордера на продажу, если первый ордер был открыт на покупку, то именно его лот будет увеличен на указанное число extern double PowerClosureSell = 2.0; увеличение лота второго открытого ордера на покупку, если первый ордер был открыт на продажу, то именно его лот будет увеличен на указанное число // extern double IncreaseBuy = 2.0; увеличение третьего и последующих ордеров на продажу, если первый ордер был открыт на покупку extern double IncreaseSell = 2.0; увеличение третьего и последующих ордеров на покупку, если первый ордер был открыт на продажу // extern double Limit = 10; число на которое будет поделен баланс счета и полученная сумма будет предоставлена советнику для торговли. Тут надо заметить, что, чем меньше указанно число, тем сума предоставленная советнику для торговли будет больше. Допустим число 2 будет указывать что советнику будет предоставлено для торговли половина баланса открытого счета. Что бы отключить этот параметр надо указать - 1 (единицу)
P.S: На последнем скриншоте, пара EURUSD, с периодом H1, в верху в настройках советника указано как можно манипулировать настройкой цены... Там я, когда проверял советник в тестере стратегий, то заметил, что ордера на продажу поздно закрываются одним ордером или сетью ордеров на покупку и тут, я увеличил параметр PowerClosureSell до 3.0, то есть, этот параметр увеличивает лот второго противоположенного ордера, что бы увеличенным лотом попытаться закрыть первый ордер. Здесь первый ордер на продажу Sell лотом 0.1, значит Buy покупка будет открыт лотом 0.3... Что в таком случае произошло? А произошло то, что мы сократили расстояние для достижения заданной цели и уменьшили для себя расстояние тренда, так как мы предполагаем и не факт что тренд вверх будет долгим, то лучше закрыть ордера раньше - до того как тренд вверх изменится на тренд вниз и тогда нам придется открывать сеть ордеров что бы попытаться закрыть этот первый ордер на продажу.
