Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 813

 
Здравствуйте. Помогите пожалуйста. Выставляет ордера и больше ничего не делает. Ошибок нет. 
Файлы:
test3_3.mq4  15 kb
 
Доброго времени суток! Извиняюсь если я не по теме, но сил уже нету - крик души! Ребята, подскажите пожалуйста как написать индикатор мучаюсь уже над этой темой наверное месяц блин. И интернет перерыл и сам в MQL4 пробовал разобраться ничего не выходит. Пустяковый индикатор а ничего не получается.  Индикатор должен показывать в виде линии разницу между двумя CFD инструментами в пунктах. Т.е. (bid+ask)/2 первого инструмента минус (bid+ask)/2 второго инструмента соответственно по свечам. Имена инструментов должны задаваться в настройках индикатора их должно быть два. Изменяться конечный участок линии должен с каждым новым тиком. И синхронизироваться котировки должны по времени а не по свечам (разное количество свечей в день BRN и CL). Помогите плиз, добрые люди! Заранее благодарен.
 
CJIeCaPb:
Здравствуйте. Помогите пожалуйста. Выставляет ордера и больше ничего не делает. Ошибок нет. 

С чего бы это:

for(i=1;i<=OrdersTotal();i++) //может с OrdersTotal()-1 и до 0 разумнее было бы?
{
 if(OrderSelect(i-1,SELECT_BY_POS)==true)
 {
  if(OrderSymbol()!=Symb)continue;
  if(OrderType()==4) //тип байстоп - 4
   OrderTicketBuy=OrderTicket();
   if(OrderType()==6) //тип селлстоп - 5
   OrderTicketSell=OrderTicket();
   
  }
}

Читаем про типы ордеров, да и остальной мануал не стоит на самокрутки пускать, сначала прочитать хотя бы раз 10.

 
fantom700:
Доброго времени суток! Извиняюсь если я не по теме, но сил уже нету - крик души! Ребята, подскажите пожалуйста как написать индикатор мучаюсь уже над этой темой наверное месяц блин. И интернет перерыл и сам в MQL4 пробовал разобраться ничего не выходит. Пустяковый индикатор а ничего не получается.  Индикатор должен показывать в виде линии разницу между двумя CFD инструментами в пунктах. Т.е. (bid+ask)/2 первого инструмента минус (bid+ask)/2 второго инструмента соответственно по свечам. Имена инструментов должны задаваться в настройках индикатора их должно быть два. Изменяться конечный участок линии должен с каждым новым тиком. И синхронизироваться котировки должны по времени а не по свечам (разное количество свечей в день BRN и CL). Помогите плиз, добрые люди! Заранее благодарен.
В истории нет Бид и Аск, есть цены, описываемые MqlRates, а индикаторы по истории рисуют.
 
evillive:

С чего бы это:

Читаем про типы ордеров, да и остальной мануал не стоит на самокрутки пускать, сначала прочитать хотя бы раз 10.

Устанавливаются же BUYSTOP и SELLSTOP, а у них типы 4 и 6 соответственно.

Насчет OrdersTotal() не понял, в смысле:" с -1 до 0"? 

 
CJIeCaPb:

Устанавливаются же BUYSTOP и SELLSTOP, а у них типы 4 и 6 соответственно.

*Насчет OrdersTotal() не понял, в смысле:" с -1 до 0"? 

Тип байстоп - 4, селлстоп - 5, нумерация типов же с нуля. С типом 6 вроде только пополнение/снятие депозита, да и то не документировано нигде.

*Не "с -1 до 0", а "перебор в цикле с OrdersTotal()-1 и до 0"

Далее, исполнение OrderSelect стоило бы проверить, не надо лениться, по ошибке исполнения было бы понятно, что тикеты неправильные.

Вообще, все торговые функции ОБЯЗАТЕЛЬНО нужно проверять на предмет их выполнения без ошибок, так что проверяйте, не ленитесь. Да и результаты, возвращаемые остальными функциями, можно и нужно проверять.

 
evillive:
В истории нет Бид и Аск, есть цены, описываемые MqlRates, а индикаторы по истории рисуют.

Тогда просто три цифры: первая цифра: цена первого инструмента(bid+ask)/2; вторая цифра: цена второго инструмента (bid+ask)/2; третья цифра: (bid+ask)/2 первого инструмента минус (bid+ask)/2 второго инструмента. Без всякой истории, а просто на данный момент времени по тикам. 

А вообще я хотел сделать что-то типа такого: http://www.mister-forex.ru/indikator-ma-arbitrage/&nbsp;

только без всяких by, sell. просто индикатор в виде линии. 

 
evillive:

Тип байстоп - 3, селлстоп - 5, нумерация типов же с нуля. С типом 6 вроде только пополнение/снятие депозита, да и то не документировано нигде.

*Не "с -1 до 0", а "перебор в цикле с OrdersTotal()-1 и до 0"

Далее, исполнение OrderSelect стоило бы проверить, не надо лениться, по ошибке исполнения было бы понятно, что тикеты неправильные.

Вообще, все торговые функции ОБЯЗАТЕЛЬНО нужно проверять на предмет их выполнения без ошибок, так что проверяйте, не ленитесь. Да и результаты, возвращаемые остальными функциями, можно и нужно проверять.

В номерах вы запутались!

Тип операций для функции OrderSend(). Mожет быть любым из следующих величин:

Константа

Значение

Описание

OP_BUY

0

Покупка

OP_SELL

1

Продажа

OP_BUYLIMIT

2

Отложенный ордер BUY LIMIT

OP_SELLLIMIT

3

Отложенный ордер SELL LIMIT

OP_BUYSTOP

4

Отложенный ордер BUY STOP

OP_SELLSTOP

5

Отложенный ордер SELL STOP

 
borilunad:

В номерах вы запутались!

Тип операций для функции OrderSend(). Mожет быть любым из следующих величин: 

Виноват, исправлюсь
 
evillive:

Тип байстоп - 3, селлстоп - 5, нумерация типов же с нуля. С типом 6 вроде только пополнение/снятие депозита, да и то не документировано нигде.

*Не "с -1 до 0", а "перебор в цикле с OrdersTotal()-1 и до 0"

Далее, исполнение OrderSelect стоило бы проверить, не надо лениться, по ошибке исполнения было бы понятно, что тикеты неправильные.

Вообще, все торговые функции ОБЯЗАТЕЛЬНО нужно проверять на предмет их выполнения без ошибок, так что проверяйте, не ленитесь. Да и результаты, возвращаемые остальными функциями, можно и нужно проверять.

Ааа, неправильно указал, да.) 

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

Условия для входа if(MA=MA1) ,неверно? Ведь =, не является знаком условия, правильно - "==", однако если я так прописываю эксперт вообще ничего не делает. Остальные варианты: ">=",  "<=",   "<",   ">" что и "=" приводят к выставлению ордеров и дальнейшему ступору.

Файлы:
test3_4.mq4  15 kb