Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 911
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ребят помогите Прошу!!!
Неужели проще сделать скриншот и запостить его сюда, чем скопипастить текст советника? Думаете, кто-то вручную наберёт его со скрина в свой МЕ и станет разбираться?
Если компилятор пишет, что надо проверить результат выполнения функции, то его значит надо проверить. Это несложно:
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Спасибо. Однако правильно или нет ? предупреждение все равно выдает
Здравствуйте!
Мне в эксперте на открытие свечи проверяется предыдущая свеча, если условия позволяет то открывается позиция, если нет то не открывается. Проблема в том что позиция открывается раньше чем проверяется условие предыдущее свече. Получается в журнале вижу открытие позиции а потом что позиция не должна открывается. Как решит эту проблему?
else Sleep(2);
И при относительных выдает тоже самое(
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Спасибо. Однако правильно или нет ? предупреждение все равно выдает
Неправильно, не надо два раза OrderSend вызывать. Да и СЛ с ТП надо считать относительно цены, а не в пунктах выставлять. И нормализовывать надо не цены открытия Аск и Бид, а результат расчётов СЛ и ТП.
В общем, "учиться, учиться и ещё раз учиться" )))
Неправильно, не надо два раза OrderSend вызывать. Да и СЛ с ТП надо считать относительно цены, а не в пунктах выставлять. И нормализовывать надо не цены открытия Аск и Бид, а результат расчётов СЛ и ТП.
В общем, "учиться, учиться и ещё раз учиться" )))
Еще раз большое спасибо!
Теперь есть одна проблема советник открывает несколько ордеров подряд, а не один как я хотел(
int start()
{ S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
if(MyOrderStateB == 1)Sleep(300000);
else MyOrderStateB = 0;
if(MyOrderStateS == 1)Sleep(300000);
else MyOrderStateS = 0;
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());
else Sleep(2);
MyOrderStateB = 1;
if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )
if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))
Print("Opening Sell error #", GetLastError());
else Sleep(2);
MyOrderStateS = 1;
return(0);}
Пронаблюдал странное поведение тестера стратегий. У меня советник устанавливает и тралит отложенные стоповые ордера. ошибка. Происходит следующее. Советник устанавилвает Байстоп и селлстоп на расстоянии 30 пунктов от текущей цены (Инструмент - GbpUsd. Четырёхзнак. Минимально-допустимый уровень = 3 пункта). Через какое-то время он их подтягивает вслед за рынком, если они не сработали. Так вот, что я вижу. модификация успешна, модификация успешна, а затем в какой-то момент времени хлоп и высскакивает ошибка №1. То есть всё было нормально, советник делал одни и те же действия и вдруг выскакивает эта ошибка. Цены все нормализованы до дигитса. Вообще, все величины, которые подаются на вход функции OrderModify() - всё нормализовано!
В чём может быть причина такого поведения советника в тестере?