- Советники: RSI_Test
- Запуск советника на счетах нескольких брокеров в одном терминале
- К чему привязывается советник при активации?
|
МТ4 не открывает ордера. Почему?
extern double L1=0.01;
extern int magic;extern int mn1=001;
extern int mn2=002;
int init()
{
return(0);
}
int start()
{
RefreshRates(); // Обновление данных
OrderSend ("AUDCAD", OP_BUY, L1, Ask, 3, 0, 0, mn1, 0, CLR_NONE);
RefreshRates(); // Обновление данных
OrderSend ("AUDCAD", OP_BUY, L1, Ask, 3, 0, 0, mn2, 0, CLR_NONE);
RefreshRates(); // Обновление данных
OrderClose (mn2, L1, Bid, 3);
RefreshRates(); // Обновление данных
OrderClose (mn1, L1, Bid, 3);
return(0);
}
int deinit()
{
return(0);
}
МТ4 не открывает ордера. Почему?
......
Цена и лот не нормализованы.
И закрывать не будет - закрытие по тикету (не по меджику) который вы не присвоили после открытия ордера.
Цена и лот не нормализованы.
И закрывать не будет - закрытие по тикету (не по меджику) который вы не присвоили после открытия ордера.
Как нормализовать цену и лот?
Тут нашел http://forex.24r.info/index.php?option=com_content&view=article&id=12:---ndprice&catid=2:1&Itemid=12
Функция нормализации цен - NDPrice()
double NDPrice(double InputValue)
{
return (NormalizeDouble(InputValue,Digits));
}
http://forex.24r.info/index.php?option=com_content&view=article&id=13:-init&catid=2:1&Itemid=12
double NDLot(double InputValue)
{
int CommaDidgits;
switch (MarketInfo(Symbol(), MODE_MINLOT))
{
case 0.0001:
CommaDidgits = 4;
break;
case 0.001:
CommaDidgits = 3;
break;
case 0.01:
CommaDidgits = 2;
break;
case 0.1:
CommaDidgits = 1;
break;
case 1.0:
CommaDidgits = 0;
}
return (NormalizeDouble(InputValue,CommaDidgits));
}
В ту ли сторону я стал копать? Что то не совсем понятно.
в ту...
NormalizeDouble(Ask,Digits) //для цены NormalizeDouble(L1,2) //для лота.
Надеюсь понятно почему в первом примере Digits, а во втором цифра 2?
Надеюсь, советник стоит на графике AUDCAD?
Да.
в ту...
Надеюсь понятно почему в первом примере Digits, а во втором цифра 2?
Digits - определяет количество знаков после запятой, которое комьютер должен сам определить, ведь бывают 2 (на йене-доллар), 4 и даже в некоторых ДЦ 5 цифр после запятой.
2 - это количество знаков после запятой в лоте. :)
Забавный язык программирования МТ4. В других языках программирования подобной замороченности с переменными не возникало.
С вопросом закрытия ордеров по мейджику я постараюсь разобраться в понедельник (сейчас форекс не работает, выходные). Не помолучться - сильно не пинайте, спрошу в этой ветке. :)Надеюсь, советник стоит на графике AUDCAD?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования