все снятия и заливка денех на счет проходят под этим номером
Хм. И каким же образом данные номер может повлиять на сбор статистики об ордерах?
artmedia70:
Это недокументированные данные.
Замечательно! Самое интересное, что кто-то об этом знает как ни странно. Как можно было об этом догадаться?
artmedia70:
О чём речь понимаете? Речь не о количестве ордеров, а об их типе. Так вот: ордер, имеющий тип 6 - это неторговое изменение депозита.
Если тестируется сова в демо, то как может учесться данный ордер? Т.е. тот баланс, который изначально даётся на демо - это и будет то самое.. искомое ОНО? А в реале - уже, то что вывел и положил на депо, верно?
Вот так должно работать, сам не проверял, т.к. терминал пока занят оптимизацией другого советника
Добрый день!
Попробовал вставить Ваш код, в шаблон из учебника. Необходимо, чтобы открывалась только одна сделка, данный шаблон настроен только на одну позицию.
Переменную ticket назвал по другому tickett, так как в шаблоне уже есть такая и сделал ее статической, чтобы критерий для выхода получал от нее данные, если позиция остается на следующий день.
Все хорошо, но только возникла проблема зацикливания. Например, в тестере советник выходит из сделки по тейк профиту или closesell, а критерий для входа все еще актуален и получается, что советник постоянно открывает и тут же закрывает позицию.
Данную проблему раньше решал добавление переменной static datetime t, но стоит сделать так как
if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
t=Time[0];
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
if (Time[0]>t)
{
Cls_S=true;
tickett=-1;
}
}
}
перестает срабатывать closesell.
Так работает, но зацикливается:
#define magic 123456789
StartHour=14;
StartMinute=1;// Время 08:01
StopHour=16;
StopMinute=30; // Время 23:58
StartTime=StartHour*60+StartMinute;
StopTime=StopHour*60+StopMinute;
staticint tickett=-1;
staticdouble Maximum=-1;
staticdatetime t;
if(StopTime<=StartTime) {Print("ERROR: Неправильные времена"); return(0);}
CurrentMinutesFromDayStart=Hour()*60+Minute();// Текущее время в минутах от начала дняdatetime td=iTime(Symbol(),PERIOD_D1,0);// Время открытия дневного бара в секундах от 01.01.1970if(CurrentMinutesFromDayStart<StartTime) {Maximum=-1;Flag=true;}// Если StartTime еще не настало, то после StopTime нужно пересчитать Maximum и можно открывать ордерif(CurrentMinutesFromDayStart>StopTime && Maximum<0) {// если максимум ещё не посчитанdatetime ts=td+StartTime*60;// начало временного диапазона в секундах от 01.01.1970
start= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
ts=td+StopTime*60;// конец временного диапазона в секундах от 01.01.1970
count= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
count=start-count;// Сколко баров длится временной интервал
Maximum=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,count,start));//Находим максимум на заданном временном интервале
}
if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
Cls_S=true;
tickett=-1;
}
}
В чем может быть проблема? Третий день голову ломаю, перепробовал все, что пришло на ум, но в mqlне особо силен.
Советник прикрепляю, не удается весь текст, разместить.
Подскажите пожалуйста, как нибудь можно коментарии к ордену установить по умолчанию???
Что за "орден"? За какие заслуги? Куда и зачем ему комментарий?
У меня тут что-то на простом моменте, головняк. Есть функция, для поиска ордеров.
t - счётчик всех ордеров.
p - счётчик отложенных ордеров.
Вызываю из старта:
По факту, при распринтовке, даже когда нет ордеров вот что видим(даже когда ордеров нет, печатает типа они есть...):
Это как же так?
А не подумали, что тип ордера может быть ещё и больше пяти? Конкретно - 6. Это неторговое изменение депозита
Ну вот так...
А не подумали, что тип ордера может быть ещё и больше пяти? Конкретно - 6. Это неторговое изменение депозита
Нет. Первый раз слышу. Где об этом говорится?
депозит = тип 6
Хм. Тип ордера = депозит!? Это что такое?
Ну вот так...
А не подумали, что тип ордера может быть ещё и больше пяти? Конкретно - 6. Это неторговое изменение депозита
А почему именно 6,ведь размер или количество ордеров можно прописать самостоятельно в советник.
Хм. Тип ордера = депозит!? Это что такое?
все снятия и заливка денех на счет проходят под этим номером
А почему именно 6,ведь размер или количество ордеров можно прописать самостоятельно в советник.
О чём речь понимаете? Речь не о количестве ордеров, а об их типе. Так вот: ордер, имеющий тип 6 - это неторговое изменение депозита.
Нет. Первый раз слышу. Где об этом говорится?
Это недокументированные данные.
все снятия и заливка денех на счет проходят под этим номером
Хм. И каким же образом данные номер может повлиять на сбор статистики об ордерах?
Это недокументированные данные.
Замечательно! Самое интересное, что кто-то об этом знает как ни странно. Как можно было об этом догадаться?
О чём речь понимаете? Речь не о количестве ордеров, а об их типе. Так вот: ордер, имеющий тип 6 - это неторговое изменение депозита.
Если тестируется сова в демо, то как может учесться данный ордер? Т.е. тот баланс, который изначально даётся на демо - это и будет то самое.. искомое ОНО? А в реале - уже, то что вывел и положил на депо, верно?
Вот так должно работать, сам не проверял, т.к. терминал пока занят оптимизацией другого советника
Добрый день!
Попробовал вставить Ваш код, в шаблон из учебника. Необходимо, чтобы открывалась только одна сделка, данный шаблон настроен только на одну позицию.
Переменную ticket назвал по другому tickett, так как в шаблоне уже есть такая и сделал ее статической, чтобы критерий для выхода получал от нее данные, если позиция остается на следующий день.
Все хорошо, но только возникла проблема зацикливания. Например, в тестере советник выходит из сделки по тейк профиту или close sell, а критерий для входа все еще актуален и получается, что советник постоянно открывает и тут же закрывает позицию.
Данную проблему раньше решал добавление переменной static datetime t, но стоит сделать так как
перестает срабатывать close sell.
Так работает, но зацикливается:
В чем может быть проблема? Третий день голову ломаю, перепробовал все, что пришло на ум, но в mql не особо силен.
Советник прикрепляю, не удается весь текст, разместить.