pal64them Опубликовано 1 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 1 апреля, 2018 Уважаемые программисты помогите пожалуйста !Нужен код для советника чтобы закрывал все ордера по профиту депозита но не выключался .Уже не первый день интернет рою а результата нет.Если кому не лень запихать его туда.... probetest.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 4 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 4 апреля, 2018 Добрый день. Пытался сам написать, но видимо руки не оттуда у меня, поэтому прошу помощи у людей с руками из плеч, нужно 2 индикатора с алертом, оба простые и на основе полос боленджера, первый должен сигналить при пробое одной из крайних линий, а второй при обратном пробое (возвращении в канал), желательно чтобы сигнал был секунд за 10 до закрытия свечи Ссылка на сообщение Поделиться на другие сайты More sharing options...
hackas Опубликовано 8 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 8 апреля, 2018 Здравствуй народ!Хочу написать сов по такой стратегии, а именно!Цена пробивает уровень нижний или верхний(сопротивление или поддержку), затем откатывается к этому уровню с низу верх или наоборот сверху вниз, после чего и открываем сделки, что - то написал, но почему не работет никак не вкурю. for(i = 5; i { double Closei = Close; long volumei = Volume; double LastFractal_UP = iFractals(_Symbol,_Period,MODE_UPPER,i); double LastFractal_Doun = iFractals(_Symbol,_Period,MODE_LOWER,i); double Open1 = iClose(NULL,0,1); if((Close1 > Open1 && Close2 > Open2 && Close1-Open2>20*Point)||(Close1 > Open1 && Close1-Open1 > 20*Point))IMPULS_UP = true; if((Close1 20*Point)||(Close1 20*Point))IMPULS_LO = true; if(IMPULS_UP && Close1 > LastFractal_UP_H1 && volumei >= volume_level)Trade(OP_BUYLIMIT, TPCoef); if(IMPULS_LO && Close1 = volume_level)Trade(OP_SELLLIMIT, TPCoef); }Есть идеи?))ывапывап.jpgдшшррощ.jpg Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 9 апреля, 2018 hackas имхо, надо один раз создать массив вершин и направлений фракталов, и в цикле по вершинам определяться со входом. Одновременно искать фракталы по всей истории и определяться со входом не получится.Нужно делать точность или размер области, размер отскока цены для входа. Ещё есть теория, что с каждым отскоком сила уровня теряется - значит надо считать количество подходов цены ранее... в общем работа не малая. Ссылка на сообщение Поделиться на другие сайты More sharing options...
hackas Опубликовано 9 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 9 апреля, 2018 Вход по нин бару думаю делать, а на счет массива можно черкануть,если не ирудно))Если честно то у меня с массивами туго(Это всё что я смог придумать и то, полоивна с сайта tradelikeapro.ru видео обучения MQL4, а как дальше связать эти массивы не знаю Спойлер double FractUp [300]; double FractLo [300]; double Hi [300]; double Lo [300]; ArrayResize(Fract,300); ArrayResize(FractLevel,300); int j = 0; int f = 0; int m = 0; int k = 0; for(i=1;i { HideTestIndicators(true); LastFractal_UP = iFractals(_Symbol,60,MODE_UPPER,i); LastFractal_Doun = iFractals(_Symbol,60,MODE_LOWER,i); HideTestIndicators(false); if(LastFractal_UP!=0) { FractUp[j]=LastFractal_UP; j++; } if(LastFractal_Doun!=0) { FractLo[f]=LastFractal_Doun; f++; } LastHi = iHighest(NULL, 0, MODE_HIGH, History, i) LastLo = iLowest(NULL, 0, MODE_LOW, History, i) if(LastHi!=0) { Hi[m]=LastHi; m++; } if(LastLo!=0) { Lo[k]=LastLo; k++; } } Подскажите не знающему пожалуйста Изменено 10 апреля, 2018 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 10 апреля, 2018 Вам нужно определиться с общим алгоритмом работы, если опыта в программировании нет, то лучше упростить, например:1. ждём закрытие бара2. если бар медвежий или дневной минимум, берём Лоу и ищем на периоде 5 дней локальный Хай с точностью Х-пипс для бычьего бара или дневного хая наоборот3. если хай на истории найден и отскок цены от этой области в пределах У-пипс - входим Изменено 10 апреля, 2018 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
griny Опубликовано 23 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 23 апреля, 2018 Помогите разобраться.Советник не отображается в тестере.На графике есть а в тестере не появляется. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 23 апреля, 2018 Помогите разобраться.Советник не отображается в тестере.На графике есть а в тестере не появляется.Слева-вверху есть выбор Советник/Индикатор - должен быть выбран Советник.Потом открываете список советников, он аналогичен списку в панели Навигатор, с которой Вы устанавливаете на график.Других пояснений у меня нет. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 25 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 25 апреля, 2018 Добрый день. Подскажите где накосячил? До ввода MAV и внедрения ее в формулу все работало. Но теперь даже при удалении, ново видений остаются те же ошибки только уже относятся к ниже стоящим строкам. Менял название аргумента MAV на более длинное, но без изменений в формуле и при этом все скомпилировалось без ошибок, но после внесения изменений в формулы все опять по пизде, возврат к тому к компилирующемуся состоянию выдает опять ошибку. Может дело в редакторе? exp.JPG Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 25 апреля, 2018 после kolpos ";" поставте Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 25 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 25 апреля, 2018 блин, точно. Спасибо большое. Тогда может еще один момент кто подскажет: требуется закрывать ордера через определенное время. Как это прописать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 25 апреля, 2018 Sacred70 от времени открытия или от чего?если от времени открытия:if ( TimeCurrent() - OrderOpenTime() > xx_sec ) OrderClose(...); Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 Sacred70 от времени открытия или от чего?если от времени открытия:if ( TimeCurrent() - OrderOpenTime() > xx_sec ) OrderClose(...); Да, от времени открытия. Но почему то не срабатывает. Может не туда ткнул?exp1.JPG Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 Да, от времени открытия. Но почему то не срабатывает. Может не туда ткнул? А ордер у Вас предварительно выбран? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 А ордер у Вас предварительно выбран? он всегда один Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 А ордер у Вас предварительно выбран? он всегда одинКакая разница?OrderSelect() в любом случае нужен. Из справки: Спойлер OrderOpenTimeВозвращает время открытия выбранного ордера.datetime OrderOpenTime();Возвращаемое значениеВремя открытия выбранного ордера.ПримечаниеОрдер должен быть предварительно выбран с помощью функции OrderSelect().Пример: if(OrderSelect(10, SELECT_BY_POS)==true) Print("open time for the order 10 ", OrderOpenTime()); else Print("OrderSelect() вернул ошибку - ",GetLastError());[/spoiler] 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 все понял, спасибо, у меня как то отдельно все это было Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 26 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 26 апреля, 2018 Sacred70 если всегда один ордер, то в момент открытия функция OrderSend() возвращает тикет - вот по номеру тикета и делайте ордер активным:int tiket = OrderSend(...);if ( tiket else{ OrderSelect( tiket, SELECT_BY_TICKET ); // здесь выставление СЛ/ТП} 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 27 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 27 апреля, 2018 Люди добрые и терпеливые))) объясните дураку, где тут косяк, вроде все учел, но все равно на тесте сделки открываются сразу в обе стороны и в ту же закрываются и так каждую минуту exp2.JPG Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 27 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 27 апреля, 2018 Sacred70 ничего страшного - зато работает! :dосталось только написать условия открытия и закрытия, работает это так:- сначала описываем переменные, желательно на глобальном уровне, т.е. выше OnTick(): int TKSELL = -1, TKBUY = -1;- Вы написали условие открытия на основании индикаторов (нужно добавить условие TKSELL TKSELL = OrderSend(...); OrderSelect(TKSELL , SELECT_BY_TICKET);- потом пишите условия закрытия по времени, но нужно добавить TKSELL >= 0 && OrderTimeClose() CLSELL = OderClose(TKSELL, ... ); if ( CLSELL ) TKSELL = -1; // сбрасываем номер тикетаПо названию переменной ничего не происходит, она просто хранит число. Для Бай стороны аналогично - попробуй сам. Удачи! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 28 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 28 апреля, 2018 0llПолучилось частично)) Теперь открываются только buy, но закрываются через минуту. Мне кажется все это заговор массонов :-/, ну не могу же я быть таким тупым (наверное)))) уже 3 ночи пишу эту поэму и самое страшное что это даже не половина моей задумки. Ткнит меня носом, пожалуйста))exp3.JPG Изменено 28 апреля, 2018 пользователем Sacred70 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 28 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 28 апреля, 2018 Sacred70 выкладывай весь файл .mq4, по скрину не удобно.Вы не убрали OrderClose после вызова индикаторов. Есть ощущение что у Вас нет пока понимания как работает советник.Попробую объяснить:функция OnTick запускается с приходом каждого тика, т.е. в среднем 1/сек опрашиваются индюки, закрываются ордера, проверяются условия на вход и т.д. Вот зачем Вам на каждом тике закрывать ордера?Вы не используете {} скобки после операторов if() - это может работать не корректно, нужно сделать на бумаге структуру программы и потом программировать, пример алгоритма:1. получаем данные индикаторов2. если нет ордеров Бай, проверяем условия на вход Бай { 2.1. если выполнено - вход. запоминаем тикет Бай. }3. если нет ордеров на селл, проверяем условия на вход Селл. { 3.1. если выполнено - вход Селл. запоминаем тикет Селл. }4. Если есть ордер Бай - проверяем условия на выход Бай { 4.1. если выполнено - выход Бай, сбрасываем тикет Бай. }и т.д. - попробуйте, может поможет.В программе это выглядит так:if ( TKBUY { // проверяем условия на вход Бай if ( ...&&... . ) TKBUY = OrderSend(...);}else // ордер Бай в рынке{ // проверяем условия на выход if ( ...&&... . ) { CLBUY = OrderClose(...); if ( CLBUY ) TKBUY = -1; }}короче нужна структура программы, иначе утонете в логических ошибках. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sacred70 Опубликовано 28 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 28 апреля, 2018 0llпро {} знаю, экспериментировал и как положено и как придется)). Спасибо за направление, завтра начну копать снова. Как и просили выкладываю файл советника.Expert1.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Yuri070 Опубликовано 29 апреля, 2018 Поделиться Доработка советников: общая тема Опубликовано 29 апреля, 2018 Нашел в открытом коде советник FapTurbo. Вроде раньше неплохо ночью зарабатывал, пока не стали повышать ночью спреды. Сейчас можно найти брокеров с приемлемыми ночными спредами. Многие используют для ночной торговли советник Generic, использующий полосы болинджера. FapTurbo использует RSI и МА, а также фильтры. Говорят все новое - хорошо забытое старое. Хотелось бы посмотреть, что можно из него сейчас выжать, но не могу дать ладу, чтобы привести код в актуальное состояние. Коллеги, помогите, пожалуйста, привести код в порядок, ошибок не выдает, но есть предупреждения. В итоге не торгует, в журнале - пусто. FapTurbo_ver._52.2_NF.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 3 мая, 2018 Поделиться Доработка советников: общая тема Опубликовано 3 мая, 2018 Нужна помощь программиста. Есть советник,хочу его приспособить под торговлю по ТС Спринт.Для этого нужно изменить только направление входа первого ордераЕсли просто СЛ/ТП, то можно сделать, если какое-то сопровождение, то нужно смотреть, могут быть нюансы... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти