Проблема с множественным воставлением BuyStop - страница 3

 

a.DarkAngel
Даже блин пошутить нельзя! И не решён вопрос никем! Только флейм

tol64:
В таком случае подобные вопросы нужно задавать в этой ветке: Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3, а не целую тему открывать для этого. :) И не смущайтесь, что в названии указанной темы присутствует слово "новичок", так как любой из нас автоматически становится новичком, когда не знает, как решить ту или иную проблему. :) В итоге мы всю жизнь школьники до тех пор пока не будем знать всё. А знать всё мы не будем никогда. :)


Вас правильно направили, и нечего обижаться. Вашему топику самое там место.

a.DarkAngel:

Так а поделу....Выкладываю понятно если ДАЖЕ МОДЕР не может разобраться:

if (Hour()==4 && Minute()==00 && Кризис_1989==true)
{

OrderSend(Symbol(), OP_BUYSTOP, DefaultVolumeA, Bid+25*Point, 3, Ask-80*Point, Ask+80*Point, NULL,MN,0,Blue);

OrderSend(Symbol(), OP_SELLLIMIT, DefaultVolume, Bid+25*Point, 3, Ask+80*Point, Ask-25*Point, NULL,MN,0,Blue);

return(0);

}

Модер может разобраться, когда увидит соответствующие блоки кода.

Отсюда вывод => в случае кризиса 1989 года ваш советник должен целую минуту ставить ордера не считая количества...

Что он и делает судя по логу, А вот лимитные могут не устанавливаться потому что у вас ордер ближе стоплевела, и кроме того, вы бы глянули на ценовые уровни с которыми работают короткие ордера, и на совали бы Бид куда не надо, а еще цены надо нормализировать, а еще... еще... еще. И все это очень подробно описано в документации.

 
a.DarkAngel:


А что нужно?
А нужно прочитать учебник, а если в нём что-то не поймёте, тогда зададите вопрос на форуме. Форум никогда не заменит Вам учебник. Для правильного программирования нужны систематические знания, а не отрывочные, которые Вы можете получить на форуме не заглядывая в учебник. Чувствуется, что Вы слишком спешите заработать на форексе, а это как побрить на бегу зайца - быстро не получится. Люди годами занимаются, чтобы достичь успеха на форексе, и Вам тоже этого не избежать.
 
FAQ:


Вас правильно направили, и нечего обижаться. Вашему топику самое там место.

Модер может разобраться, когда увидит соответствующие блоки кода.

Отсюда вывод => в случае кризиса 1989 года ваш советник должен целую минуту ставить ордера не считая количества...

Что он и делает судя по логу, А вот лимитные могут не устанавливаться потому что у вас ордер ближе стоплевела, и кроме того, вы бы глянули на ценовые уровни с которыми работают короткие ордера, и на совали бы Бид куда не надо, а еще цены надо нормализировать, а еще... еще... еще. И все это очень подробно описано в документации.



Стоп левел 3 пункта......Ошибок нет!...На тестёре заключаются нормально сделки а на реале такое(на тестёре нет не Множества открытия BuyStop и цены нормально вбивается, на реале только такое происходит)
 
Потому что в тестере вы используете модель "по ценам открытия" и на одной итерации, в данном случае баре открывается одна пара, а когда приходит следующий, то время убегает за ваше окно открытия. Будьте внимательны при анализе и написании кода, и все будет хорошо. а еще не стесняйтесь заглядывать в ДОКУ, и не ленитесь писать все необходимые проверки и условия перед принятием решения.
 
FAQ:
Потому что в тестере вы используете модель "по ценам открытия" и на одной итерации, в данном случае баре открывается одна пара, а когда приходит следующий, то время убегает за ваше окно открытия. Будьте внимательны при анализе и написании кода, и все будет хорошо. а еще не стесняйтесь заглядывать в ДОКУ, и не ленитесь писать все необходимые проверки и условия перед принятием решения.


  ДА но почему он только открывает BuyStop а SellLimit нет? Понимаю если открывал множество ордеров и SellLimit тоже! И возврат ошибок нет!
 

1) Нормализовать ВСЕ дублевые переменные и константы

2) Вы уверены что с Объемами у вас все в порядке ? ( DefaultVolumeA, DefaultVolume )

3) Проверить все перед отправкой через Print()

4) Написать правильный код

5) Описать все возможные ошибки и методы их устранения.

 
a.DarkAngel:


ДА но почему он только открывает BuyStop а SellLimit нет? Понимаю если открывал множество ордеров и SellLimit тоже! И возврат ошибок нет!

Так не бывает. У вас у продажи стоп ниже входа. Минус видите?





И если я изменил в функции название решение не поменялось:

double GetTakeProfitBuy() 
  {     
    return (Bid 

-

AStopLoss*Point);   } В этой функции реализованно всё также: OrderSend(Symbol(), OP_SELLLIMIT, DefaultVolumeB, GetSELLILIMIT(), 3, GetTakeProfitBuyB(), GetStopLossSell(), NULL,MN,0,Blue)
 
a.DarkAngel:

Так а поделу....Выкладываю понятно если ДАЖЕ МОДЕР не может разобраться:

if (Hour()==4 && Minute()==00 && Кризис_1989==true && iVolume(Symbol(),240,0)<1) // открываем на первом тике Н4 можно в 2 тика 3 тика ну сами смотрите тогда не будет множества ордеров
{

OrderSend(Symbol(), OP_BUYSTOP, DefaultVolumeA, Bid+25*Point, 3, Ask-80*Point, Ask+80*Point, NULL,MN,0,Blue);

OrderSend(Symbol(), OP_SELLLIMIT, DefaultVolume, Bid+25*Point, 3, Ask+80*Point, Ask-25*Point, NULL,MN,0,Blue);

return(0);

}

то что синим лишнее !
 
AlexHacker007:
то что синим лишнее !


Пробовал на реале и тестёре вобще сделки не открывает!
 
a.DarkAngel:


Пробовал на реале и тестёре вобще сделки не открывает!
void CheckForOpen()
{

if (Hour()==4 && Кризис_1989==true && iVolume(Symbol(),240,0)<2) // открываем на первом тике Н4 можно в 2 тика 3 тика ну сами смотрите тогда не будет множества ордеров
{

OrderSend(Symbol(), OP_BUYSTOP, LotsOptimized(), Bid+25*Point, 3, Ask-80*Point, Ask+80*Point, NULL,MN,0,Blue);

OrderSend(Symbol(), OP_SELLLIMIT, LotsOptimized(), Bid+25*Point, 3, Ask+80*Point, Ask-25*Point, NULL,MN,0,Blue);

return(0);
}

}

так работает я в тестере проверил ! после того как поставил 2 тика заработало вероятно на 1 тике не успевает сделкать ордера пробуй 2 3 4 5 6 7 тиков

либо нужно добавить функцию проверки открытия ордера ! Пока ордера не открыть долбить сервер .... пришел тикет ОК .. СТоп машина