Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 79

 

Здравствуйте, есть такой простой вопрос. Вначале открываем сделку в одну сторону и платим спред. Далее открываем встречную сделку  с тем же лотом и тоже берётся от неё спред. То есть при встречном закрытии этих сделок выходит что платится два спреда? 

 

подскажите пару строк кода

1) как сделать чтоб сов срабатывал ну допустим раз в 10 секунд

2) установка отложенного ордера если по данной цене нет установленного ордера\отложенного ордера

3)и если можно подскажите как получить разницу обьёмов между установленными ордерами (открытыми)

 
Rustem71:


Напиши что ты хочешь сделать по приходу тика???

А то там столько лишних телодвижений ты делаешь.

И пиши правильно код не сокращай скобки. Если положено писать в условии фигурные скобки то их нужно писать. Самому легче станет разбираться в коде. Когда наблатыкаешься то и начнешь сокращать.

Жду пояснений по приходу тика.


Идея такая открываются 2 отложенных ордера первый который сработал с начальным лотом например BUY сразу же удаляется SELLSTOP и на тоже место ставится SELLSTOP но с удвоенным лотом, так же открывается SELL ставится BUYSTOP *2 лот, и дальше например если не сработал треллинг стоп а тренд развернулся ставятся отложенники с *2 лотом  .И дальше если идет в без убыток в плюсе например 0.05 выставится трелинг стоп. Вот как-то так!!! Если подскажите как  оптимизировать + свои коментарии  по моим ошибкам буду очень признателен!     Вообщем я не могу понять почему у меня место одного отложенного ордера, отложенники открываются до полного  слива депозита!
 
Akinak:
Посмотрите пожалуйста! Если можно объясните что я не так сделал! Как только я не пробовал или не открывает ордер или открывает пачку по циклу!!! 

если больше либо равно равно единицы (проще - больше нуля) - не открывать, то же самое нужно повторить и для баек

а у Вас наоборот почему то:

if(s==1)

то есть должно быть примерно так:

if(s==0)
{ 
//открываем селл
}
 
Akinak:
Посмотрите пожалуйста! Если можно объясните что я не так сделал! Как только я не пробовал или не открывает ордер или открывает пачку по циклу!!! 


Если правильно понял то так. Дальше сам.

И пиши нормально коды.

Файлы:
888.mq4  8 kb
 
Здравствуйте! Помогите пожалуйста с функцией, запарился уже не знаю как правильно сделать! Мне нужно что бы можно было вбивать в параметры, время моего компьютера. Заранее спасибо!
extern bool    HOUR = false;             // Часы Вкл (true) / Выкл (folse)
extern string  TimeBegin = "13:30";      // Время начала (ЧЧ:ММ)
extern string  TimeEnd   = "17:00";      // Время окончания (ЧЧ:ММ)
//Отправляет true если по времени разрешено торговать
bool isTradeTimeString()
{
 datetime hbegin = StrToTime(TimeBegin) + TimeGMTOffset();
 datetime hend = StrToTime(TimeEnd) + TimeGMTOffset();
 
 datetime dtBegin, dtEnd;        // Время начала и окончания работы
 int      hc, he;                // Часы текущего времени и окончания работы

 dtBegin=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hbegin,TIME_MINUTES));
 dtEnd=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hend,TIME_MINUTES));
 hc = TimeHour(TimeCurrent());
 he = TimeHour(dtEnd);
 if(dtBegin>=dtEnd)
 {
  if(hc>=he)
   dtEnd+=24*60*60;
  else
   dtBegin-=24*60*60;
 }
 if(HOUR==true)
 {
  if(TimeCurrent()>=dtBegin && TimeCurrent()<=dtEnd)
   return(true);
  else
  {
   if(CountTrades()==0)
    return(false);
  }
 }
 return(true);
}
 
Arseniy Barudkin:
Здравствуйте! Помогите пожалуйста с функцией, запарился уже не знаю как правильно сделать! Мне нужно что бы можно было вбивать в параметры, время моего компьютера. Заранее спасибо!
TimeLocal() 
 
Rustem71:


Если правильно понял то так. Дальше сам.

И пиши нормально коды.


Большое спасибо!Очень помогли! Я чуть больше двух недель пишу еще такие тонкости не знал!
 
Здравствуйте, уважаемые форумчане! При создании простого советника выдает ошибку! Подскажите пожалуйста в чем причина.
Файлы:
meryjj.jpg  197 kb
 
naravat:
Здравствуйте, уважаемые форумчане! При создании простого советника выдает ошибку! Подскажите пожалуйста в чем причина.

После return нужно поставить скобочки, а в них написать какое-то значение, по типу совпадающее с типом функции.