Советники, эксперты, форекс роботы Обсуждение, поиск и тестирование форекс советников, роботов, экспертов и МТС

Ответить
18.05.2012, 14:46
Аватар для hasik
hasik hasik вне форума Новичок форума
Регистрация: 22.10.2009 / Адрес: Днепропетровск / Сообщений: 24
Поблагодарили 2 раз(а) / Репутация: 1
Есть функция которая возврашает шаг изменения лота MarketInfo(Symbol(), MODE_LOTSTEP). можно сделать так: если она =0.1 то вош ZnakLOT=1, если она вернёт 0.01, то ZnakLOT=2. И автоматически вычисляет и внешних параметров меньше.
18.05.2012, 14:49
Аватар для hasik
hasik hasik вне форума Новичок форума
Регистрация: 22.10.2009 / Адрес: Днепропетровск / Сообщений: 24
Поблагодарили 2 раз(а) / Репутация: 1
для восстановления после остановки можно использовать поле OrderComment(). Например заносить туда порядковый номер "колена".
18.05.2012, 15:00
Аватар для falerx
falerx falerx вне форума Активный участник
За призовое место в конкурсе 

Регистрация: 20.11.2011 / Сообщений: 88
Поблагодарили 107 раз(а) / Репутация: 108
для восстановления после остановки можно использовать поле OrderComment(). Например заносить туда порядковый номер "колена".
Торговый сервер может иногда видоизменять комментарий ордера...
18.05.2012, 15:03
Аватар для hasik
hasik hasik вне форума Новичок форума
Регистрация: 22.10.2009 / Адрес: Днепропетровск / Сообщений: 24
Поблагодарили 2 раз(а) / Репутация: 1
Это только после закрытия ордера, или, возможно, частичного закрытия (это не проверял). А так я использую всё ОК. За 2,5 года пользования на двух ДЦ ниразу советник не ругался на то, что не может понять комментарии.

Последний раз редактировалось hasik; 18.05.2012 в 15:29.
18.05.2012, 16:43
Аватар для 1x1
1x1 1x1 вне форума Активный участник
Регистрация: 25.02.2012 / Сообщений: 193
Поблагодарили 62 раз(а) / Репутация: 63
Беда у меня. То 131, то 130. Менял PercLots. По умолчанию 0,5 вызывает ошибку 131. Попробовал 10. Стало 130 показывать. Поставил 20 - заработало. Только начальный лот теперь 0,06, следующий 0,13, 0,26, 0,52 и т. д.
Что это может быть?
И почему на работе ему все нравится с этим значением (PercLots=0,5), а дома вот отказывается работать. Ведь версия терминала одинакова что там, что тут. Загадка блин. Первый раз такое вижу.

Последний раз редактировалось 1x1; 18.05.2012 в 17:26.
18.05.2012, 18:48
Аватар для krezi
krezi krezi вне форума Местный житель
Регистрация: 09.10.2011 / Сообщений: 116
Поблагодарили 174 раз(а) / Репутация: 175
  • Отправить сообщение для krezi с помощью ICQ
hasik! А вот и не правильно! ЛотСтэп может быть 0.01 а мин лот 0.1 (Ф4У центовый счёт пример)

На счёт "В справочнике MQL поизучал функции записи чтения" Это делается не так.
Нужно сделать один перебор ордеров, и повыбирать из него то что надо(первая цена, последняя цена, количество лотов в одну сторону и другую, тэйк профиты и т.д. и т.п.)

Напишите список чего нужно подцепить, напишу вам функцию.

P.S. не используйте комментарии для выбирания своих ордеров, это как по тефалевой сковородке царапать вилкой.
MQLzone.ru
18.05.2012, 18:56
Аватар для 1x1
1x1 1x1 вне форума Активный участник
Регистрация: 25.02.2012 / Сообщений: 193
Поблагодарили 62 раз(а) / Репутация: 63
Ошибка 130 вроде начинает проясняться. То ли ДЦ не позволяет просто ставить ордера вблизи той цены на данный момент, то ли еще что. Отступ у меня стоит 10. Цена отходит немного, и ордер открывается. Теперь задал начальный лот 0,02. Ибо серия 0,08-0,16...0,64 ведет к неоткрытию последнего из-за недостатка средств и неминуемому сливу. Надо еще будет поколдовать с количеством колен.
18.05.2012, 19:25
Аватар для krezi
krezi krezi вне форума Местный житель
Регистрация: 09.10.2011 / Сообщений: 116
Поблагодарили 174 раз(а) / Репутация: 175
  • Отправить сообщение для krezi с помощью ICQ
Так...ошибка 130
1. Если возникает при Модификации то это стопы путаем
Чтоб забороть пишем проверку

int DCStop = MarketInfo(Symbol(),MODE_STOPLEVEL);
// тут мы получим интовое число которое надо привести к виду котировки
Следовательно получим:

double DCStop = NormalizeDouble(MarketInfo(Symbol(),MODE_STOPLEVEL)*Point,Digits);

2. А если в тестировщике 130ая вылазит то надо Обрезать котировки под своё ДЦ, а то в 4-х знаке бывают пятизнаки (редко но метко)

P.S. незабываем проскальзывание если его нет (советник не смотрел)
MQLzone.ru
19.05.2012, 05:37
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
для восстановления после остановки можно использовать поле OrderComment(). Например заносить туда порядковый номер "колена".
А как быть с этим?:

//--- Внутренние глобальные переменные
bool NewCycle=true;//Переключатель. Если true, то начинается новый цикл
bool OpPosHigh=true;//Переключатель. Если true, то можно ставить верхние позиции
bool OpPosLow=true;//Переключатель. Если true, то можно ставить верхние позиции
bool Perevod12=false;//Переключатель. Если true, то прямой досрочно переводится в обратный
bool Perevod21=false;//Переключатель. Если true, то обратный досрочно переводится в прямой
double LOT;//Текущий лот в цикле
double ProfitClose;//Текущая планка профита для закрытия
int NOpen;//Количество открытых ордеров
int NOtlog;//Количество отложенных ордеров
int NumCycle;//Номер текущего цикла
int N1;//Текущее колено прямого Мартина
int N2;//Текущее колено обратного Мартина
double LevelHigh;//Уровень для ордеров Buy прямого Мартина и Sell - обратного
double LevelLow;//Уровень для ордеров Sell прямого Мартина и Buy - обратного
int LastHighTicket;//Тикет последнего верхнего ордера
int LastLowTicket;//Тикет последнего нижнего ордера

Тут одного номера колена недостаточно. Это все нужно сохранять
19.05.2012, 05:42
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
Беда у меня. То 131, то 130. Менял PercLots. По умолчанию 0,5 вызывает ошибку 131. Попробовал 10. Стало 130 показывать. Поставил 20 - заработало. Только начальный лот теперь 0,06, следующий 0,13, 0,26, 0,52 и т. д.
Что это может быть?
И почему на работе ему все нравится с этим значением (PercLots=0,5), а дома вот отказывается работать. Ведь версия терминала одинакова что там, что тут. Загадка блин. Первый раз такое вижу.
Ошибка 131 - ошибка кол-ва лотов (вроде как решено в версии 1.2)
Ошибка 130 - неправильные стопы - тупо увеличваем Otstup. Однако может не помочь при RMode =5 или 6. Там могут возникнуть ситуации с резким движением цены.
19.05.2012, 05:45
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
hasik! А вот и не правильно! ЛотСтэп может быть 0.01 а мин лот 0.1 (Ф4У центовый счёт пример)

На счёт "В справочнике MQL поизучал функции записи чтения" Это делается не так.
Нужно сделать один перебор ордеров, и повыбирать из него то что надо(первая цена, последняя цена, количество лотов в одну сторону и другую, тэйк профиты и т.д. и т.п.)

Напишите список чего нужно подцепить, напишу вам функцию.

P.S. не используйте комментарии для выбирания своих ордеров, это как по тефалевой сковородке царапать вилкой.
Получается так делать не надо и оставить как есть?
19.05.2012, 05:48
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
Так...ошибка 130
1. Если возникает при Модификации то это стопы путаем
Чтоб забороть пишем проверку

int DCStop = MarketInfo(Symbol(),MODE_STOPLEVEL);
// тут мы получим интовое число которое надо привести к виду котировки
Следовательно получим:

double DCStop = NormalizeDouble(MarketInfo(Symbol(),MODE_STOPLEVEL)*Point,Digits);

2. А если в тестировщике 130ая вылазит то надо Обрезать котировки под своё ДЦ, а то в 4-х знаке бывают пятизнаки (редко но метко)

P.S. незабываем проскальзывание если его нет (советник не смотрел)

А вот это уже точно не надо делать. Так мы привяжем параметры Otsup и PercProf1, PercProf2 (следовательно и ProfitClose) и потеряем свободу в настройке Манименеджмента. Надо просто варьировать параметром Otstup пока не исчезнет ошибка 130.
19.05.2012, 08:26
Аватар для krezi
krezi krezi вне форума Местный житель
Регистрация: 09.10.2011 / Сообщений: 116
Поблагодарили 174 раз(а) / Репутация: 175
  • Отправить сообщение для krezi с помощью ICQ
Скачал v.1.2 ошибка 131
Заборол таким образов:

1. Добавил функцию(в конец кидаем если чё)

double NDL(double lot)
{
double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
lot = NormalizeDouble(lot,2);
if(lot<MinLot)
{
lot = MinLot;
}
if(lot>MaxLot)
{
lot = MaxLot;
}
return(lot);
}


2. Везде где идёт OrderSend меняем LOT на NDL(LOT)

В итоге ошибку 131 не увидим больше никогда

А на счёт параметра отступ.
Он должен быть не менее или равен MODE_STOPLEVEL+MODE_SPREAD
MQLzone.ru

Последний раз редактировалось krezi; 19.05.2012 в 08:33.
19.05.2012, 09:11
Аватар для super65
super65 super65 вне форума Активный участник
Регистрация: 27.04.2011 / Сообщений: 20
Поблагодарили 33 раз(а) / Репутация: 34
А вот это уже точно не надо делать. Так мы привяжем параметры Otsup и PercProf1, PercProf2 (следовательно и ProfitClose) и потеряем свободу в настройке Манименеджмента. Надо просто варьировать параметром Otstup пока не исчезнет ошибка 130.
Пересмотрите код программы.
Там есть ошибки.
19.05.2012, 09:20
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141

По умолчанию Версия 1.3.1

Благодаря пожеланиям Sensh реализованя версия 1.3 с частичным закрытием наиболее просевшего ордера. В версии 1.3.1 дополнительно вставлен Мод, предложенный krezi, для исключения ошибок 130, 131.

По частичному закрытию:
Версия 1.3 и 1.3.1


Добавлено частичное закрытие наиболее просевшего ордера. Управляется следующимим параметрами:

extern double HalfClose=0.7;//Доля частичного закрытия наиболее просевшего ордера. Работает если больше нуля и если достигнут MaxNM1 или MaxNM2
extern double MaxDrawDown=30;//Максимальная просадка в %, при достижении которой позволено частичное закрытие ордеров

Теперь советник в некоторых случаях стал стабильнее и прибыльнее а в некоторых наоборот. Нужно еще понять почему, что да как.
Потестите, выложите результаты. Нужно знать есть ли от этого положительный "выхлоп".
pk9999 
19.05.2012, 11:55
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
Внимание! В процесс тестирования версии 1.3.1 заметил что настройки от версии 1.1 не подходят даже при отключенно частичном закрытии. К версии 1.3 вроде бы подходят.
19.05.2012, 14:49
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
Пересмотрите код программы.
Там есть ошибки.
Будьте добры, подскажите где и конкретно какие ошибки?
19.05.2012, 14:54
Аватар для Sprinter500
Sprinter500 Sprinter500 вне форума Активный участник
Регистрация: 31.03.2012 / Сообщений: 352
Поблагодарили 140 раз(а) / Репутация: 141
Если сов не мучают ошибки 130 и 131 лучше использовать версию 1.3 или даже старую 1.1, так как над технологией частичного закрытия ордеров надо еще поработать. А именно когда лучше это делать, когда нет, в каких соотношениях и т.д.
1x1 , ixoidnk 
19.05.2012, 16:47
Аватар для super65
super65 super65 вне форума Активный участник
Регистрация: 27.04.2011 / Сообщений: 20
Поблагодарили 33 раз(а) / Репутация: 34
if (ord==3 ) //BUYLIMIT
{
error=OrderSend(Symbol(),OP_SELLLIMIT, LOT,Price,Slip,0,0,"",Magic,0,DeepSkyBlue);// OP_BUYLIMIT
LastHighTicket=error;//LastLowTicket
}
if (ord==-3) //SELLLIMIT
{
error=OrderSend(Symbol(),OP_BUYLIMIT,LOT,Price,Sli p,0,0,"",Magic,0,Yellow);//SELLLIMIT
LastLowTicket=error;// LastHighTicket
}


if (RMode==1 || RMode==3 || RMode==5)
{
OpenOrder(3,LevelHigh);//-3
OpenOrder(-3,LevelLow); //3
}

Происходит путаница по тикетам и Otstup надо всё таки * на 10
19.05.2012, 21:05
Аватар для Guru
Guru Guru вне форума Новичок форума
Регистрация: 26.02.2010 / Сообщений: 73
Поблагодарили 12 раз(а) / Репутация: 17
просмотрел много вариантов настроек,при RMode =5 чаще возникает ошибка 130...а так стараюсь подобрать оптимальные параметры.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 20:24. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO