Да, всё верно.
Созданная простенькая прога показала, что ошибка где-то в другом.
int init()
{
return;
}
int start()
{
double Min_Lot;
double OldBid[1];
string Symb;
if (Bid>=OldBid[0])
{
Symb="EURGBP";
}
else
{
Symb="AUDJPY";
}
OldBid[0]=Bid;
Min_Lot=MarketInfo(Symb,MODE_MINLOT);
Alert("Мин. лот для ",Symb,"=",Min_Lot);
return;
}
Я, честно говоря, грешил на дв. кавычки, что в MarketInfo значение Symb вставляется без них и от этого всё... Но - всё норм.
Проблема в кавычках, вот так: "проблема" :)))
...
Назначенная переменная Symb путается в показаниях, и запутывает маркетинфо.
Тут нужно либо так:
Min_Lot_a=MarketInfo("EURGBP",MODE_MINLOT); Min_Lot_b=MarketInfo("AUDJPY",MODE_MINLOT); // и т.д...
либо цикл с массивом:
double cena; string Symb={"EURGBP", "AUDJPY"}; // for (int i=0; i<2; i++) {cena=MarketInfo(Symb[i],MODE_BID); Alert("Цена: ",Symb[i]," = ",cena); }
Ваш код работает корректно:
08:40:21 Compiling 'test' 08:40:21 test GBPUSD,M5: loaded successfully 08:40:35 test GBPUSD,M5: Alert: Мин. лот для EURGBP=0.1 08:40:43 test GBPUSD,M5: Alert: Мин. лот для EURGBP=0.1 08:40:44 test GBPUSD,M5: Alert: Мин. лот для EURGBP=0.1 08:40:45 test GBPUSD,M5: Alert: Мин. лот для AUDJPY=0.1 08:40:46 test GBPUSD,M5: Alert: Мин. лот для EURGBP=0.1 08:40:54 test GBPUSD,M5: Alert: Мин. лот для AUDJPY=0.1 08:40:54 test GBPUSD,M5: uninit reason 1 08:40:54 test GBPUSD,M5: removed
Идея с построчныи MarketInfo или с массивом, конечно, катит. Но, на то он и советник, что помимо Info ему надо будет ордера выставлять. Там нужна определённость. В массив на выставление ордера все Symb не затолкаешь.
Млять!!!
Удаляйте топик на хрен!
У меня нумерация массивов с единичного номера, а не с нуля начинается! Отсюда критерии не правильные.
Всем СПАСИБО за участие.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Видимо, туплю...
Не работает MarketInfo в мультивалютнике:
- по определённым критериям понял, что нужна инфа (например: инимальный лот) по опр. паре. Делаю так:
Прикрепил эксперт к EURGBP M15. Открыл все сопутствующие графики М15.
Обьявил Symb на глобальном уровне: string Symb; далее:
if ( тра-та-та ) Symb="GBPUSD";
double Min_Lot=MarketInfo(Symb,MODE_MINLOT);
Компиляция проходит нормально. Однако при запуске выдаёт следующее:
MyExpert EURGBP M15: Symbol name for MarketInfo function must be string.
Кто-нить подскажите, плз.