Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 646

 
Tra-der:
Есть два терминала МТ5. Задача: можно ли написать скрипты, чтобы в одном терминале были разрешены только лонговые сделки, а в другом - только шортовые?  
#define ORDER_TYPE_BUY ORDER_TYPE_BUY_STOP   // поставить в самом начале советника, если нужно отказаться от BUY-сделок
#define ORDER_TYPE_SELL ORDER_TYPE_SELL_STOP // поставить в самом начале советника, если нужно отказаться от SELL-сделок
 
Tra-der:
Есть два терминала МТ5. Задача: можно ли написать скрипты, чтобы в одном терминале были разрешены только лонговые сделки, а в другом - только шортовые?  

Просто введите в свой советник входной параметр и в зависимости от того, какое значение ему присвоено при старте, будете или только покупать или только продавать:

input bool Long=true;            // allow only "Long"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
...
void OnTick()
  {
   if(!Long)
      trade.Sell(0.01);
   if(Long)
      trade.Buy(0.01);
  }


 

 
Artyom Trishkin:

Для того, чтобы понять, что это новая вершина или донышко, нужно запомнить время прошлой найденной вершины/донышка, и сравнить его с тем, что нашли на данный момент.

Спасибо, с буфером понятно.

Для того чтоб запомнить время прошлой найденной вершины, нужно его как-то узнать.

Как это сделать, как узнать время прошлой найденной вершины?

 
mila.com:

Спасибо, с буфером понятно.

Для того чтоб запомнить время прошлой найденной вершины, нужно его как-то узнать.

Как это сделать, как узнать время прошлой найденной вершины?

1. Объявляете статическую переменную для хранения времени прошлого экстремума зигзага, инициализируете нулём.

2. Находите вершину, если её время не равно времени в статической переменной, то считаете что нашли нужный экстремум и запоминаете новое время в этой переменной.

3. GoTo(2);

 

Товарищи программисты!

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

Задача такая: при переходе на новые сутки ДЦ расширяет спред, и иногда он бывает по некоторым парам невменяемым - превышает нормальный в 3-5 раз. Переход суток в разных ДЦ по-разному в плане времени, у кого-то в 23-59, а у кого-то в 20-59 и тд.

Есть пары, по которым спред практически не меняется, то есть отсечь в роботе "Работа по времени" не вариант, потому как если по паре спред не изменился, то нет необходимости запрещать торговлю.

Теперь главный вопрос: как узнать что спред по паре завышен и запретить роботу в это время открывать позиции. Мне видится вариант сохранения размера спреда в файл на каждом новом баре за последние 5-7 баров, потом всё это сложить и делить на количество, тем самым узнаю средний спред и умножить на 1.2 - 1.4 (запас), но как-то неинтересно сохранять и плодить файлы, и не уверен что это правильное решение расчёта среднего размера спреда. Если вручную вводить максимально допустимый спред в настройках, то это очень банально и неинтересно в плане эксплуатации бота.

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

Спасибо! 

 
Vitaly Muzichenko:

Товарищи программисты!

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

Задача такая: при переходе на новые сутки ДЦ расширяет спред, и иногда он бывает по некоторым парам невменяемым - превышает нормальный в 3-5 раз. Переход суток в разных ДЦ по-разному в плане времени, у кого-то в 23-59, а у кого-то в 20-59 и тд.

Есть пары, по которым спред практически не меняется, то есть отсечь в роботе "Работа по времени" не вариант, потому как если по паре спред не изменился, то нет необходимости запрещать торговлю.

Теперь главный вопрос: как узнать что спред по паре завышен и запретить роботу в это время открывать позиции. Мне видится вариант сохранения размера спреда в файл на каждом новом баре за последние 5-7 баров, потом всё это сложить и делить на количество, тем самым узнаю средний спред и умножить на 1.2 - 1.4 (запас), но как-то неинтересно сохранять и плодить файлы. Если вручную вводить максимально допустимый спред в настройках, то это очень банально и неинтересно в плане эксплуатации бота.

Подскажите оптимальное решение вопроса. Спасибо!

Может и бонально, но ограничение ввожу вручную. А если на новогодние праздники за последние N свечей будет спред в 3 раза больше чем обычно, а ночью ещё в 3 раза больше ? то система анализа воспримет как норм спред х3. Думаю если человек торгует на реале, то ему не трудно вручную оценить средний рабочий спред и установить порог. Хотя решение вашего вопроса было бы интересно и мне)
 
Что же это за ТС-логика, так зависящая от спреда?!
 
fxsaber:
Что же это за ТС-логика, так зависящая от спреда?!

Ладно, пусть будет так. Вот к примеру тут расширение спреда даже не в три раза, а больше, и если входить в рынок со спредом в 20пп, в то время как нормальный 4-6пп, то это не нормально, и нужно эти моменты отсечь.

 
Vitaly Muzichenko:

Ладно, пусть будет так. Вот к примеру тут расширение спреда даже не в три раза, а больше, и если входить в рынок со спредом в 20пп, в то время как нормальный 4-6пп, то это не нормально, и нужно эти моменты отсечь.

Ну так ориентируйтесь на bid, если собираетесь делать SELL. Какая разница, какой спред? Ладно, больше не встреваю.
 
Vitaly Muzichenko:

Ладно, пусть будет так. Вот к примеру тут расширение спреда даже не в три раза, а больше, и если входить в рынок со спредом в 20пп, в то время как нормальный 4-6пп, то это не нормально, и нужно эти моменты отсечь.

Глобальные не помогут?