Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 672
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С этой функцией не работал. Предположение - если терминал однажды символ выделил, то следующая попытка выделения этого же символа может возвращать false. Попробуйте игнорировать проверку возврата этой функцией.
Оказывается, SymbolSelect("AUDUSD", true) возвращает true только если AUDUSD нету в MarketWatch - т.е. при добавлении пары в MarketWatch. Как только пара оказывается в MarketWatch, последующие вызовы возвращают false.
Такое поведение совершенно не состыкуется с мануалом по этой функции.
Пришлось извращаться через самописанную функцию, которая сканирует все SymbolName(i, true) для i=0..SymbolsTotal(true).
Оказывается, SymbolSelect("AUDUSD", true) возвращает true только если AUDUSD нету в MarketWatch - т.е. при добавлении пары в MarketWatch. Как только пара оказывается в MarketWatch, последующие вызовы возвращают false.
Такое поведение совершенно не состыкуется с мануалом по этой функции.
Что-то мне подсказывает, что можно обойтись без SymbolSelect().
Да, только что заапдейтал свой пост выше
А какой другой, а то уже нужно делать ноги от этого?!
Master Forex
я на Альпари 4 месяца сову лепил..... код нано кванто очень блин трудоёмкий и не маленький..... и что теперь всё !!!!! обидно .... может всё же что то можно сделать?
Третий сов. и всё та же ошибка, радует что проблема не с кодом :)
Master Forex
Спасибо, посмотрю!
Спасибо, посмотрю!
не агитирую просто ответил на вопрос :)
Всем привет. Не так давно начал писать советники. Столкнулся с казалось бы элементарной проблемой, которую не могу решить. Будьте добры, помогите.
Проблема. На новом тике теряется значение переменной.
Краткое описание. Присваиваем некоторой переменной возвращаемое значение функции OrderSend() и выходим по команде return. На следующем тике значение переменной становится равным нулю.
Ключевой врагмент исходного кода. Полный текст исходника ниже.
if (SAR_Prev>LastClose && SAR_Prev2<LastClose2)
{
int ticket_sell=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Ask+StopLoss*Point,Bid-TakeProfit*Point," ",111,0,Red);
Alert ("Присвоили значение пременной ticket_sell ", ticket_sell);
return;
}
}
Alert ("Существование позиции = ", position_exists, " Ордер на покупку ", ticket_buy, " Ордер на продажу ", ticket_sell);
Результат.
Скриншот показывает, что позиция успешно открылась и тикет ордера запомнен в переменной ticket_sell. Однако на следующем тике переменная ticket_sell становится равной нулю. И я не могу модифицировать/удалять ордер по тикету.
Всем привет. Не так давно начал писать советники. Столкнулся с казалось бы элементарной проблемой, которую не могу решить. Будьте добры, помогите.
Проблема. На новом тике теряется значение переменной.
Краткое описание. Присваиваем некоторой переменной возвращаемое значение функции OrderSend() и выходим по команде return. На следующем тике значение переменной становится равным нулю.
Ключевой врагмент исходного кода. Полный текст исходника ниже.
if (SAR_Prev>LastClose && SAR_Prev2<LastClose2)
{
int ticket_sell=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Ask+StopLoss*Point,Bid-TakeProfit*Point," ",111,0,Red);
Alert ("Присвоили значение пременной ticket_sell ", ticket_sell);
return;
}
}
Alert ("Существование позиции = ", position_exists, " Ордер на покупку ", ticket_buy, " Ордер на продажу ", ticket_sell);
Результат.
Скриншот показывает, что позиция успешно открылась и тикет ордера запомнен в переменной ticket_sell. Однако на следующем тике переменная ticket_sell становится равной нулю. И я не могу модифицировать/удалять ордер по тикету.
Что бы значение не терялось нужна глобальная переменная, вынеси ее объявление за пределы OnTick() или сделай ее статической