советник - разные вопросы - страница 40

 
Max Enrik:


Нет, мне нужно закрыть все ордера по символам графика.
Да, с правильным магическим числом.

if(closeallsymbols==false && OrderSymbol()!=Symbol()) 
Это немного странно.
 
Marco vd Heijden:
Это немного странно.

Да!
То же самое! Я думал, что эта часть функции близкого порядка такая странная, но она работает.

 
Какая часть фразы "Вы должны RefreshRates после сна и между несколькими вызовами сервера, если вы хотите использовать предопределенные переменные (Bid/Ask) или перед OrderSelect, чтобы использовать OrderClosePrice() вместо этого." была непонятна?
 
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
  • docs.mql4.com
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
 

Извините, пожалуйста, не вините меня. Все еще запутано.
Мне нужно кое-что спросить, и я должен делать это шаг за шагом из-за недостатка знаний кода.

Q1: Могу ли я использовать while()?
Q2: Могу ли я использовать sleep()?
Q3: Может ли RefreshRates() решить мою проблему? ( это последняя вещь, которая решит мою проблему, пожалуйста?)

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

 

Вы можете использовать while, но тогда вам также нужно добавить счетчик, который выходит из цикла после X количества попыток, иначе вы рискуете, что эксперт застрянет в бесконечном цикле.

Вы говорите о своей проблеме, но я понятия не имею, в чем она заключается.

Если ваша проблема связана с ценой закрытия, то вы можете просто использовать,

MarketInfo(OrderSymbol(),MODE_ASK);
MarketInfo(OrderSymbol(),MODE_BID);

Соответственно и добавить переключатель OrderType() для OP_BUY и OP_SELL.

 
Marco vd Heijden:

Вы говорите о своей проблеме, но я понятия не имею, в чем она заключается.

Я просто хочу сказать, что моя проблема заключается в следующем: иногда моя функция закрытия открытых ордеров оставляет некоторые открытые ордера. Я хочу постоянно закрывать все открытые ордера одновременно.

---

2-й раз отредактировано

Могу ли я заменить все мои функции Bid и Ask на MarketInfo(), пожалуйста?

MarketInfo(OrderSymbol(),MODE_BID);
MarketInfo(OrderSymbol(),MODE_ASK);
 
whroeder1:
Какая часть фразы "Вы должны RefreshRates после сна и между несколькими вызовами сервера, если вы хотите использовать предопределенные переменные (Bid/Ask) или перед OrderSelect, чтобы использовать OrderClosePrice() вместо этого." была неясна?


RefreshRates() я не понимаю, куда его можно поместить.

Спасибо за ваши комментарии.

 
Max Enrik:

Я просто хочу сказать, что у меня такая проблема: иногда моя функция "Закрыть открытые ордера" оставляет открытые ордера. Я хочу постоянно закрывать все мои открытые ордера одновременно.

---

2-й раз отредактировано

Могу ли я заменить все мои функции Bid и Ask на MarketInfo(), пожалуйста?

Да, если вы работаете с позицией, которая не является символом графика.
 
Marco vd Heijden:
Да, если вы работаете с позицией, которая не является символом графика.


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

Хороших выходных.