[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 50

 

В самом советнике выложен полностью весь код.

Всем большое спасибо за помощь. 

 
Sergstuddek:

Здравствуйте. Помогите пожалуйста страдающему человеку.

У меня вот такая проблема, я только начинаю изучать MQL, и решин написать свой первый простенький советник, но возникла проблема

в коде не открываются отложенные ордера обьясните почему и в чем проблема.

int OpenStops()
{
if(OrderSelect(CalculateCurrentOrders1(Symbol()),SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY) // Проверка на то что открытый ордер на покупку
int ticket;
double LotSize=OrderLots(); // Размер лота открытого ордера
double OpenPrice=OrderOpenPrice(); // Цена открытия открытого ордера
ticket=OrderSend(Symbol(),OP_SELLSTOP,LotSize*2,OpenPrice-DS*Point,0,SL*Point,TP*Point,"",MAGIC,0,Red); // Открытие отложки на продажу в противополжну сторону до открытого ордера
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,OpenPrice+TP*Point,0,SL*Point,TP*Point,"",MAGIC,0,Blue); // Открытие отложки на покупку в сторону продолжения до открытого ордера

if(OrderSelect(CalculateCurrentOrders1(Symbol()),SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL) // Проверка на то что открытый ордер на продажу
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,OpenPrice-TP*Point,0,SL*Point,TP*Point,"",MAGIC,0,Red); // Открытие отложки на покупку в сторону продолжения до открытого ордера
ticket=OrderSend(Symbol(),OP_BUYSTOP,LotSize*2,OpenPrice+DS*Point,0,SL*Point,TP*Point,"",MAGIC,0,Blue); // Открытие отложки на покупку в противополжну сторону до открытого ордера
}


Для начала научитесь вставлять правильно код - через Контрл+Альт+М - потом уже все остальное...
 
Roman.:
Для начала научитесь вставлять правильно код - через Контрл+Альт+М - потом уже все остальное...
Вот в этом окошке будет код, если воспользоваться кнопкой SRC на верхней панели
 

Подскажите скрипт или советник который бы отображал информацию на экране (спред, уровень стопов, открытые сделки, прибыль по сделкам, прибыль за сегодня, и т.д.). Спасибо.

 
granit77:



Спасибо за помощь, это мне очень помогло
 
Здравствуйте. Помогите пожалуйста страдающему человеку.

У меня вот такая проблема, я только начинаю изучать MQL, и решин написать свой первый простенький советник, но возникла проблема

в коде не открываются отложенные ордера обьясните почему и в чем проблема.
int OpenStops()
{
if(OrderSelect(CalculateCurrentOrders1(Symbol()),SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY) // Проверка на то что открытый ордер на покупку
int ticket;
double LotSize=OrderLots(); // Размер лота открытого ордера
double OpenPrice=OrderOpenPrice(); // Цена открытия открытого ордера
ticket=OrderSend(Symbol(),OP_SELLSTOP,LotSize*2,OpenPrice-DS*Point,0,SL*Point,TP*Point,"",MAGIC,0,Red); // Открытие отложки на продажу в противополжну сторону до открытого ордера 
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lot,OpenPrice+TP*Point,0,SL*Point,TP*Point,"",MAGIC,0,Blue); // Открытие отложки на покупку в сторону продолжения до открытого ордера

if(OrderSelect(CalculateCurrentOrders1(Symbol()),SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL) // Проверка на то что открытый ордер на продажу
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,OpenPrice-TP*Point,0,SL*Point,TP*Point,"",MAGIC,0,Red); // Открытие отложки на покупку в сторону продолжения до открытого ордера
ticket=OrderSend(Symbol(),OP_BUYSTOP,LotSize*2,OpenPrice+DS*Point,0,SL*Point,TP*Point,"",MAGIC,0,Blue); // Открытие отложки на покупку в противополжну сторону до открытого ордера
}
Так лучше
Файлы:
 
Sergstuddek:

в коде не открываются отложенные ордера обьясните почему и в чем проблема.

По порядку:

if(OrderSelect(CalculateCurrentOrders1(Symbol()),SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY) // Проверка на то что открытый ордер на покупку
int ticket;

У OrderSelect CalculateCurrentOrders1 выходит за допустимые пределы, максимальный "POS" будет CalculateCurrentOrders1(Symbol())-1. Сама конструкция if: если выпоняется условие, вы объявляете переменную "ticket"? Где-то явно напрашиваются фигурные скобки. Просто даже не могу понять что вы пытаетесь сделать. Видно, вы пока в начале длинного пути, можно было бы за вас это написать, но смысла в этом коде нет, стало быть это "учебная задача", значит вы хотите это сделать это самостоятельно. И это правильно. Воспользуйтесь учебником, посмотрите советник использующий отложки, появятся более конкретные вопросы - будем рады помочь.

З.Ы. сама запутался в ваших скобках, пост подправил.

 
prom18:

Подскажите скрипт или советник который бы отображал информацию на экране (спред, уровень стопов, открытые сделки, прибыль по сделкам, прибыль за сегодня, и т.д.). Спасибо.

Все кроме отображения спреда, есть во вкладках терминала. Сомневаюсь, что скрипт отобразить это более наглядно.

А спред в пипсах можно вывести на чарт, через дополнительную строчку в советнике:

Comment((Ask - Bid) / Point);

 
Sorento:

Я горжусь знакомством с Вами.

это же не жаль времени - всё расжевать.

Так держать!

Спасибо!



Я тоже.

sergeev - respect и уважуха))

P.S. Sorry если немного не ф тему))

 
Figar0:

По порядку:

У OrderSelect CalculateCurrentOrders1 выходит за допустимые пределы, максимальный "POS" будет CalculateCurrentOrders1(Symbol())-1. Сама конструкция if: если выпоняется условие, вы объявляете переменную "ticket"? Где-то явно напрашиваются фигурные скобки. Просто даже не могу понять что вы пытаетесь сделать. Видно, вы пока в начале длинного пути, можно было бы за вас это написать, но смысла в этом коде нет, стало быть это "учебная задача", значит вы хотите это сделать это самостоятельно. И это правильно. Воспользуйтесь учебником, посмотрите советник использующий отложки, появятся более конкретные вопросы - будем рады помочь.

З.Ы. сама запутался в ваших скобках, пост подправил.

Большое спасибо за то что обратили на мое сообщение внимание.

Замысел наверное намного проще моего кода))) Суть этого кода заключаеться в том что б отложки выставлялись относительно последнего уже открытого ордера, соответственно относительно цены открытия и  обьема уже открытого последнего ордера. 

Причина обращения: