Ответ
 
Опции темы
Старый 11.07.2013, 12:52   #1381 (permalink)
Активный участник
 
Аватар для asers1111
 
Регистрация: 22.12.2011
Сообщений: 169
Репутация: 43
asers1111
Сказал(а) спасибо: 423
Поблагодарили 42 раз(а) в 15 сообщениях
Поинты: 184
Сообщение от qqmber Посмотреть сообщение
Прям заинтриговал. Покажи, что такое каша, скриншотом хоть.
Это 509 билд.Индикатор METRO. Совершенно нормальный - не декомпил.
Миниатюры:
Нажмите на изображение для увеличения
Название: Безымянный2.jpg
Просмотров: 23
Размер:	125.0 Кб
ID:	124608   Нажмите на изображение для увеличения
Название: Безымянный1.jpg
Просмотров: 27
Размер:	127.0 Кб
ID:	124609  
asers1111 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 11.07.2013, 13:42   #1382 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от asers1111 Посмотреть сообщение
Это 509 билд.Индикатор METRO. Совершенно нормальный - не декомпил.
Душераздирающее зрелище.
Наверное стоит все-таки переустановить терминал. В корень.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
asers1111 (11.07.2013)
Старый 11.07.2013, 13:54   #1383 (permalink)
Активный участник
 
Аватар для asers1111
 
Регистрация: 22.12.2011
Сообщений: 169
Репутация: 43
asers1111
Сказал(а) спасибо: 423
Поблагодарили 42 раз(а) в 15 сообщениях
Поинты: 184
Сообщение от qqmber Посмотреть сообщение
Душераздирающее зрелище.
Наверное стоит все-таки переустановить терминал. В корень.
Зрелище действительно гадкое!............СПАСИБО ВАМ ЗА ОТЗЫВЧИВОСТЬ И ВАШЕ УЧАСТИЕ!.......Разозлившись на "судьбу такую" начал открывать все вкладки в шапке Метаэдитора и тупо нажимать кнопки и соглашаться со всем,что там есть.И вдруг все встало на свои места!Код превратился в нормальный и в совах и в индюках.Так что можно продолжать....
Жаль только,что столько времени потерял и вас потревожил....СПАСИБО еще раз!
asers1111 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 12.07.2013, 09:58   #1384 (permalink)
Интересующийся
 
Аватар для pepelatc
 
Регистрация: 28.01.2013
Адрес: Украина
Сообщений: 9
Репутация: 4
pepelatc
Сказал(а) спасибо: 18
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 14
Отправить сообщение для pepelatc с помощью Skype™
Народ, помогите плиз новичку.
Мне необходимо присвоить переменной значение +1 или -1, в зависимости от возрастания или убывания ADX. Киньте плиз кусок кода или ткните носом где почитать конкретно об этом.
Спасибо.
pepelatc вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.07.2013, 11:22   #1385 (permalink)
Интересующийся
 
Аватар для pepelatc
 
Регистрация: 28.01.2013
Адрес: Украина
Сообщений: 9
Репутация: 4
pepelatc
Сказал(а) спасибо: 18
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 14
Отправить сообщение для pepelatc с помощью Skype™
Вопрос снимаю, уже разобрался сам.
Извините.
pepelatc вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.07.2013, 18:18   #1386 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Приветствую! Не могу разобраться с одним вопросом, прошу помочь. буду благодарен!
Не получается выставить 2 отложенных ордера по Хай и Лоу закрывшейся свечи.
Собственно нужно просто выставить отложенные ордера по Хай и Лоу, со SL и TP.
Если один отложенный сработал,то второй удаляем.

написал код,но не получается почему-то. подскажите пожалуйста, что не так, что надо добавить ?

for (int i=0; i<=OrdersTotal(); i++)
{
OrderSelect (i,SELECT_BY_POS);

if (OrderType==0)
{
if (OrderType==OP_SELLSTOP) OrderDelete (OrderTicket() );
}

if OrderType==1)
{
if (OrderType==OP_BUYSTOP) OrderDelete (OrderTicket() );
}
}

if (OrdersTotal()==0)
{
OrderSend (Symbol(),OP_SELLSTOP, lot, iLow (Symbol(), 0, 1), slipp, Bid+SL*Point, Bid-TP*Point);

OrderSend (Symbol(),OP_BUYSTOP, lot, iHigh(Symbol(), 0 ,1), slipp, Ask-SL*Point, Ask+TP*Point);
}
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.07.2013, 19:42   #1387 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от gzh Посмотреть сообщение
Приветствую! Не могу разобраться с одним вопросом, прошу помочь. буду благодарен!
Не получается выставить 2 отложенных ордера по Хай и Лоу закрывшейся свечи.
Собственно нужно просто выставить отложенные ордера по Хай и Лоу, со SL и TP.
Если один отложенный сработал,то второй удаляем.

написал код,но не получается почему-то. подскажите пожалуйста, что не так, что надо добавить ?

for (int i=0; i<=OrdersTotal(); i++)
{
OrderSelect (i,SELECT_BY_POS);

if (OrderType==0)
{
if (OrderType==OP_SELLSTOP) OrderDelete (OrderTicket() );
}

if OrderType==1)
{
if (OrderType==OP_BUYSTOP) OrderDelete (OrderTicket() );
}
}

if (OrdersTotal()==0)
{
OrderSend (Symbol(),OP_SELLSTOP, lot, iLow (Symbol(), 0, 1), slipp, Bid+SL*Point, Bid-TP*Point);

OrderSend (Symbol(),OP_BUYSTOP, lot, iHigh(Symbol(), 0 ,1), slipp, Ask-SL*Point, Ask+TP*Point);
}
1. OrderType это функция. Значить должны быть круглые скобки OrderType()
2. if (OrderType==0) означает если выбранный ордер Buy типа. if (OrderType==OP_SELLSTOP) означает если выбранный ордер SellStop типа. Не может быть ордер одновременно buy и sellstop типа.
3. Почему при установке ордеров, стоп лосс и тейк профит считается относительно текущей цены, а не относительно цены открытия ордера?

Лучше сначала собрать сведения об ордерах и уже в зависимости от неё принимать решения удалять или устанавливать отложки.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 14.07.2013 в 19:45.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 14.07.2013, 22:17   #1388 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
1. Да, я знаю что это функция, просто забыл дописать скобки. В редакторе этого не забываю.
2.Я новичок в программировании, и в данном примере логика моя такая: если тип ордера Бай, значит отложник Бай сработал, нам нужно удалить SellStop.
А как удалить SellStop, если сработал БайСтоп ? подскажите.

3. Наверное лучше модифицировать ордер, если он сработал ?

Почему все таки выставляется только один отложенный ордер ? ведь нужно, чтобы выставилось 2 ордера.

А какие сведения нужно собрать ?
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.07.2013, 06:56   #1389 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от gzh Посмотреть сообщение
1. Да, я знаю что это функция, просто забыл дописать скобки. В редакторе этого не забываю.
2.Я новичок в программировании, и в данном примере логика моя такая: если тип ордера Бай, значит отложник Бай сработал, нам нужно удалить SellStop.
А как удалить SellStop, если сработал БайСтоп ? подскажите.

3. Наверное лучше модифицировать ордер, если он сработал ?

Почему все таки выставляется только один отложенный ордер ? ведь нужно, чтобы выставилось 2 ордера.

А какие сведения нужно собрать ?
Код:
bool buy=false, sell=false;
int buystop_ticket=0, sellstop_ticket=0;
//Сбор сведений
for (int i=0; i<=OrdersTotal(); i++)
{
  OrderSelect (i,SELECT_BY_POS);
 
if (OrderType()==OP_BUY) buy=true;
if OrderType()==OP_SELL) sell=true;
if (OrderType()==OP_BUYSTOP) buystop_ticket=OrderTicket();
if (OrderType()==OP_SELLSTOP) sellstop_ticket=OrderTicket();
}
//Удаление отложек
if(buy && sellstop_ticket>0)OrderDelete (sellstop_ticket);
if(sell && buystop_ticket>0)OrderDelete (buystop_ticket);
//Установка ордеров
if(!buy && !sell && sellstop_ticket==0 && buystop_ticket==0)
{
OrderSend (Symbol(),OP_SELLSTOP, lot, iLow (Symbol(), 0, 1), slipp, iLow (Symbol(), 0, 1)+SL*Point, iLow (Symbol(), 0, 1)-TP*Point);

OrderSend (Symbol(),OP_BUYSTOP, lot, iHigh(Symbol(), 0 ,1), slipp,  iHigh(Symbol(), 0 ,1)-SL*Point,  iHigh(Symbol(), 0 ,1)+TP*Point);
}
Конечно, код написан как бы написал новичок.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.07.2013, 07:14   #1390 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3645
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,649 раз(а) в 1,470 сообщениях
Поинты: 2007
Сообщение от gzh Посмотреть сообщение
Почему все таки выставляется только один отложенный ордер ? ведь нужно, чтобы выставилось 2 ордера.
Так вот тебе ответ.
Сообщение от Ugar Посмотреть сообщение
3. Почему при установке ордеров, стоп лосс и тейк профит считается относительно текущей цены, а не относительно цены открытия ордера?
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.07.2013, 15:08   #1391 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Спасибо за код, узнал новое. Но код почему-то не работает, ни одного ордера не открывает. Вроде все правильно, но... Что тут не так ?
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.07.2013, 17:38   #1392 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от gzh Посмотреть сообщение
Спасибо за код, узнал новое. Но код почему-то не работает, ни одного ордера не открывает. Вроде все правильно, но... Что тут не так ?
Извини. За основу брал твой код. Не все косяки в нём увидел сразу.
Код:
bool buy=false, sell=false;
int buystop_ticket=0, sellstop_ticket=0;
//Сбор сведений
for (int i=0; i<OrdersTotal(); i++)
{
  OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
 
if (OrderType()==OP_BUY) buy=true;
if (OrderType()==OP_SELL) sell=true;
if (OrderType()==OP_BUYSTOP) buystop_ticket=OrderTicket();
if (OrderType()==OP_SELLSTOP) sellstop_ticket=OrderTicket();
}
//Удаление отложек
if(buy && sellstop_ticket>0)OrderDelete (sellstop_ticket);
if(sell && buystop_ticket>0)OrderDelete (buystop_ticket);
//Установка ордеров
if(!buy && !sell && sellstop_ticket==0 && buystop_ticket==0)
{
OrderSend (Symbol(),OP_SELLSTOP, lot, iLow (Symbol(), 0, 1), slipp, iLow (Symbol(), 0, 1)+SL*Point, iLow (Symbol(), 0, 1)-TP*Point);

OrderSend (Symbol(),OP_BUYSTOP, lot, iHigh(Symbol(), 0 ,1), slipp,  iHigh(Symbol(), 0 ,1)-SL*Point,  iHigh(Symbol(), 0 ,1)+TP*Point);
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 15.07.2013 в 18:07.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 11:40   #1393 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Все заработало. До этого я не писал MODE_TRADES, теперь буду писать. Спасибо.

Как сделать мультивалютную торговлю, чтобы ордера одновременно открылись на 3 или 4 парах ???
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 12:52   #1394 (permalink)
Активный участник
 
Аватар для asers1111
 
Регистрация: 22.12.2011
Сообщений: 169
Репутация: 43
asers1111
Сказал(а) спасибо: 423
Поблагодарили 42 раз(а) в 15 сообщениях
Поинты: 184
Добрый день.Я в програмировании не очнь силен,а вернее,ОЧЕНЬ НЕ СИЛЕН....Господа програмисты,помогите,пожал уйста наложить стандартный мувинг с Метатрейдера на пользовательский индикатор, чтоб в пользовательском индикаторе был буфер для МА ,чтоб это стало единым индикатором.Сам пытался и долго ковырялся,но,видимо,где-то что-то не понимаю -- не получается.....
Может это не совсем относится к "помощи в програмировании",так я бы и заплатил....Буду тогда считать,что купил себе небольшой учебник по програмированию....
Вложения:
Тип файла: mq4 pfd_fire_trend.mq4 (21.4 Кб, 15 просмотров)
Тип файла: ex4 pfd_fire_trend.ex4 (19.6 Кб, 9 просмотров)
asers1111 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 13:52   #1395 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от gzh Посмотреть сообщение
Все заработало. До этого я не писал MODE_TRADES, теперь буду писать. Спасибо.
Там ещё в операторе цикла for, вместо <= надо <.
Сообщение от gzh Посмотреть сообщение
Как сделать мультивалютную торговлю, чтобы ордера одновременно открылись на 3 или 4 парах ???
А в чём проблема? В функции OrderSend первый аргумент это символ по которому устанавливать. Нужно только цену открытия стоп лосс и тейк профит пересчитать под соответствующую пару.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 15:11   #1396 (permalink)
gzh
Интересующийся
 
Аватар для gzh
 
Регистрация: 11.12.2012
Сообщений: 47
Репутация: 2
gzh
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Поинты: 64
Да, кстати я так и не понял почему вместо <= надо= ? есть какая-та практическая разница ?

На счет мультивалюты, точно, оказывается так просто, а я не догадался. спасибо за подсказку.
Еще вопрос если можно: как реализовать мультиТФ, чтобы допустим по Хай и Лоу выставились ордера на D1 , H4 , H1 ?? подскажи, что нужно сделать, я сам попробую.
gzh вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 15:35   #1397 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от asers1111 Посмотреть сообщение
Добрый день.Я в програмировании не очнь силен,а вернее,ОЧЕНЬ НЕ СИЛЕН....Господа програмисты,помогите,пожал уйста наложить стандартный мувинг с Метатрейдера на пользовательский индикатор, чтоб в пользовательском индикаторе был буфер для МА ,чтоб это стало единым индикатором.Сам пытался и долго ковырялся,но,видимо,где-то что-то не понимаю -- не получается.....
Может это не совсем относится к "помощи в програмировании",так я бы и заплатил....Буду тогда считать,что купил себе небольшой учебник по програмированию....
У тебя две проблемы.
Во-первых, в аттаче декомпилированный код. Приличные люди с декомпилами не связываются, в большинстве случаев это краденое. Компилироваться этот текст в последних версиях терминала все равно не станет, только время зря потратишь его переделывать.
Во вторых, идея встраивать машку в индюк вообще неудачная. Завтра ты захочешь полосы Боллинджера от своего индюка получить, послезавтра CCI - каждый раз добавлять буфера это не решение. Гораздо проще и гибче накладывать стандартные индикаторы типа МА на пользовательские используя опцию "Применить к первому|предыдущему (пользовательскому) индикатору". Если результат нужно получить внутри кода, то лучше написать (или найти готовую) МА, способную работать на внешнем индикаторе через iCustom().
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 15:43   #1398 (permalink)
Активный участник
 
Аватар для asers1111
 
Регистрация: 22.12.2011
Сообщений: 169
Репутация: 43
asers1111
Сказал(а) спасибо: 423
Поблагодарили 42 раз(а) в 15 сообщениях
Поинты: 184
Сообщение от qqmber Посмотреть сообщение
У тебя две проблемы.
Во-первых, в аттаче декомпилированный код. Приличные люди с декомпилами не связываются, в большинстве случаев это краденое. Компилироваться этот текст в последних версиях терминала все равно не станет, только время зря потратишь его переделывать.
Во вторых, идея встраивать машку в индюк вообще неудачная. Завтра ты захочешь полосы Боллинджера от своего индюка получить, послезавтра CCI - каждый раз добавлять буфера это не решение. Гораздо проще и гибче накладывать стандартные индикаторы типа МА на пользовательские используя опцию "Применить к первому|предыдущему (пользовательскому) индикатору". Если результат нужно получить внутри кода, то лучше написать (или найти готовую) МА, способную работать на внешнем индикаторе через iCustom().
Спасибо за разяснения.Действительно,п оследний,предложенный Вами вариант очень привлекателен.....Только вот где бы такую Машку найти?!
asers1111 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 15:54   #1399 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от asers1111 Посмотреть сообщение
Спасибо за разяснения.Действительно,п оследний,предложенный Вами вариант очень привлекателен.....Только вот где бы такую Машку найти?!
codebase.mql4.com пошерстить, наверняка есть готовое решение, или набраться храбрости и самому написать, там весь код в полстранички уложится.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 16.07.2013, 15:57   #1400 (permalink)
Активный участник
 
Аватар для asers1111
 
Регистрация: 22.12.2011
Сообщений: 169
Репутация: 43
asers1111
Сказал(а) спасибо: 423
Поблагодарили 42 раз(а) в 15 сообщениях
Поинты: 184
Сообщение от qqmber Посмотреть сообщение
codebase.mql4.com пошерстить, наверняка есть готовое решение, или набраться храбрости и самому написать, там весь код в полстранички уложится.
Поня Вас.Попробую поискать в codebase.mql4.com.Спасибо.
asers1111 на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

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



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


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