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

 
sebegolov:

помогите разобраться, почему не отрисовывается индикатор. Хочу в итоге создать что-то типа ZigZag.

Пожалуйста, вставляйте код правильно:


За вас я уже сделал в вашем посте.

 
Artyom Trishkin:

Пожалуйста, вставляйте код правильно:


За вас я уже сделал в вашем посте.

Извиняюсь, первый раз пишу на этом форуме, в следующий раз буду делать правильно.
 

Доброе время суток!

Подскажите где можно взять робота для МТ4 чтобы он выставлял SL и TP после открытия позиции?

 
churkin:

Доброе время суток!

Подскажите где можно взять робота для МТ4 чтобы он выставлял SL и TP после открытия позиции?

Здесь.
 

Подскажите, плз, как в коде определить: имеется ли на этом инструменте своп в конце дня? 

 
Ivan Katsko:

Подскажите, плз, как в коде определить: имеется ли на этом инструменте своп в конце дня? 

Поглядеть на свопы в конце дня...

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_SHORT) - своп коротких позиций

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_LONG) - своп длинных позиций

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_MODE) - модель расчёта свопа

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_ROLLOVER3DAY)- день недели для начисления тройного свопа

 
Artyom Trishkin:

Поглядеть на свопы в конце дня...

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_SHORT) - своп коротких позиций

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_LONG) - своп длинных позиций

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_MODE) - модель расчёта свопа

SymbolInfoDouble(Symbol(),SYMBOL_SWAP_ROLLOVER3DAY)- день недели для начисления тройного свопа

По справочнику SYMBOL_SWAP_MODE Для функции SymbolInfoInteger(). В глобальных переменных задал:    int ssm = SymbolInfoInteger(Symbol(),SYMBOL_SWAP_MODE); В тексте кода:    Print("ssm = ",ssm); В результате и на ДЦ, где свопа нет, и на ДЦ, где есть своп, результат = 0 (вот и вопрос). Мне бы узнать: будет своп или нет, чтоб принять соответствующее решение.



 
Ivan Katsko:

По справочнику SYMBOL_SWAP_MODE Для функции SymbolInfoInteger(). В глобальных переменных задал:    int ssm = SymbolInfoInteger(Symbol(),SYMBOL_SWAP_MODE); В тексте кода:    Print("ssm = ",ssm); В результате и на ДЦ, где свопа нет, и на ДЦ, где есть своп, результат = 0 (вот и вопрос). Мне бы узнать: будет своп или нет, чтоб принять соответствующее решение.

Некоторые переменные из рыночного окружения, аналогичные тем, которые есть в МТ5, не всегда правильно заполнены в МТ4. Поэтому в МТ4 приходится по-старинке использовать MarketInfo. Ну а тип расчета свопов для МТ4 в подавляющем большинстве случаев именно - пункты. Поэтому и получаем 0. Так, если запросить информацию через MarketInfo (в МТ4 приходится чаще использовать этот старый способ), то получим как раз значение, соответствующее справке:

MODE_SWAPTYPE

26

Метод вычисления свопов. 0 - в пунктах; 1 - в базовой валюте инструмента; 2 - в процентах; 3 - в валюте залоговых средств.

 
Ihor Herasko:

Некоторые переменные из рыночного окружения, аналогичные тем, которые есть в МТ5, не всегда правильно заполнены в МТ4. Поэтому в МТ4 приходится по-старинке использовать MarketInfo. Ну а тип расчета свопов для МТ4 в подавляющем большинстве случаев именно - пункты. Поэтому и получаем 0. Так, если запросить информацию через MarketInfo (в МТ4 приходится чаще использовать этот старый способ), то получим как разв  значение, соответствующее справке:

MODE_SWAPTYPE

26

Метод вычисления свопов. 0 - в пунктах; 1 - в базовой валюте инструмента; 2 - в процентах; 3 - в валюте залоговых средств.

SWAP - в моем понимании, процедура дилингового центра, которая заключается в следующем: если на конец суток имеются открытые ордара, то они закрываются и вместо них открываются новые ордера. В ином случае дилинговый центр не производит закрытие/открытие ордеров, а начисляет SWAP (+/-). Я пытаюсь определить: будет ли начисляться SWAP, или будут закрываться/открываться ордера? Применил:   

double ssm_l = MarketInfo(Symbol(), MODE_SWAPLONG );

double ssm_s = MarketInfo(Symbol(), MODE_SWAPSHORT);

Print("ssm_l = ",ssm_l);

Print("ssm_s = ",ssm_s);

и оказалось, что у ДЦ, где начисляется SWAP, и у ДЦ, где не начисляется SWAP, результат - некие числовые значения. То есть не возможно определиться начисляется или не начисляется у ДЦ SWAP.


 
Ivan Katsko:

SWAP - в моем понимании, процедура дилингового центра, которая заключается в следующем: если на конец суток имеются открытые ордара, то они закрываются и вместо них открываются новые ордера.В ином случае дилинговый центр не производит закрытие/открытие ордеров, а начисляет SWAP (+/-). Я пытаюсь определить: будет ли начисляться SWAP, или будут закрываться/открываться ордера? 

Такой метод начисления свопа называют ролловер (roll over). В МТ4 о нем невозможно узнать программно. Только косвенно после того, как произошел переход через полночь с рабочими рыночными ордерами. Таких вот мелких, но достаточно неприятных проблем в МТ4 множество. В МТ5 чуть меньше, но все равно имеются.

Применил:   

double ssm_l = MarketInfo(Symbol(), MODE_SWAPLONG );

double ssm_s = MarketInfo(Symbol(), MODE_SWAPSHORT);

Print("ssm_l = ",ssm_l);

Print("ssm_s = ",ssm_s);

и оказалось, что у ДЦ, где начисляется SWAP, и у ДЦ, где не начисляется SWAP, результат - некие числовые значения. То есть не возможно определиться начисляется или не начисляется у ДЦ SWAP.


Это величины свопа в пунктах. Их нужно преобразовать в валюту депозита, исходя из объема рыночного ордера. Тогда будет получен реальный размер свопа.

Причина обращения: