Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 225

 
Добрый день!) Сложилась такая ситуация и хочется её решить без использования костылей. Советник открывает позицию, есть стоп и тейк. Возникают ситуации когда при тестировании на одной свечи (на ней же выполняется условие открытия позиции), сразу после закрытия первого отрдера происходит открытие второго, третьего и т.д. ордеров. Это связано с тем, что именно на этой свечи выполняется условие открытия позиции и спустя какое-то время срабатывает стоп или тейк ( условие открытия все ещё выполняется, свеча не закрыта).

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

 
Profitpamm:
Добрый день!) Сложилась такая ситуация и хочется её решить без использования костылей. Советник открывает позицию, есть стоп и тейк. Возникают ситуации когда при тестировании на одной свечи (на ней же выполняется условие открытия позиции), сразу после закрытия первого отрдера происходит открытие второго, третьего и т.д. ордеров. Это связано с тем, что именно на этой свечи выполняется условие открытия позиции и спустя какое-то время срабатывает стоп или тейк ( условие открытия все ещё выполняется, свеча не закрыта).
Подскажите пожалуйста как сделать так чтобы был вход ( условие открытия позиции) и если же на  этой самой свече сработает тейк или стоп чтобы не открывалась новая позиция ( условие открытия выполняется). Спасибо!

 

Проверяйте по дате, есть ли открытая позиция и была ли открыта и закрыта позиция на этой свече...
 
Profitpamm:
Добрый день!) Сложилась такая ситуация и хочется её решить без использования костылей. Советник открывает позицию, есть стоп и тейк. Возникают ситуации когда при тестировании на одной свечи (на ней же выполняется условие открытия позиции), сразу после закрытия первого отрдера происходит открытие второго, третьего и т.д. ордеров. Это связано с тем, что именно на этой свечи выполняется условие открытия позиции и спустя какое-то время срабатывает стоп или тейк ( условие открытия все ещё выполняется, свеча не закрыта).

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


Вот пример, как можно использовать это...

datetime zap_tim;

//=======================
void start()
{
if(zap_tim!=Time[0])
 {
  OrderSend(............);
  zap_tim=Time[0];
 }
}
 
-Aleks-:

 

Проверяйте по дате, есть ли открытая позиция и была ли открыта и закрыта позиция на этой свече...
Спасибо Aleks!
 
Valerius:


Вот пример, как можно использовать это...

Valerius, большое спасибо за пояснение!
 

Перестал работать стандартный код из справки

https://docs.mql4.com/ru/basis/types/casting

Приведение данных типа простых структур

333

как лечить?

Используется для конвертации значений разных базовых типов. Например, имеется массив uchar arr[].Необходимо записать значение double в определенную позицию.

void GetBytes(double x,uchar &arr[],int pos)

Или наоборот - считать.

double GetDouble(uchar &arr[],int pos)

Возможно кто подскажет более простое решение???

Приведение типов - Типы данных - Основы языка - Справочник MQL4
Приведение типов - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Приведение типов - Типы данных - Основы языка - Справочник MQL4
 

double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период
   int          ma_shift,         // сдвиг средней
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Как ставится какая нибудь пара за место symbol ?
 
Rustam Bikbulatov:

double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период
   int          ma_shift,         // сдвиг средней
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Как ставится какая нибудь пара за место symbol ?

"EURUSD"
 
Alekseu Fedotov:

"EURUSD"

значит в кавычках. спасибо!
 
Rustam Bikbulatov:

double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период
   int          ma_shift,         // сдвиг средней
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Как ставится какая нибудь пара за место symbol ?
double  iMA("EURCAD", Period(), ...);
Причина обращения: