![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
leonid553 |
![]()
Сообщение
#211
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Да - так и заявил. В глобальные.
В обычном коде вставил и заработало : Код if (!ZeroBarOrd) { //---------проверяем условие на покупку---------------------------- if ( ((Stochastic_1b<MA_low) && (Stochastic_0b>MA_low)) || (ma_1<MA_0 && ma_0 > MA_0) ) { Lots=GetSizeLot(); ticket_=OrderSend("GBPJPY",0,Lot,ask_GBPJPY,Slippage,bid_GBPJPY-SL*point_GBPJPY, ask_GBPJPY+TP*point_GBPJPY,"M_3",MagicGBPJPY,0,CLR_NONE); if (ticket_<0){Print("Ошибка открытия ордера BUY GBPJPY#",GetLastError()); return(0); } else ZeroBarOrd=true; } Здесь же (выше в пред. посте) ситуация иная! Там после успешного открытия позиции уже есть одно else |
NoName |
![]()
Сообщение
#212
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Если имеется ввиду этот момент, то нужно написать так:
Код ticketGBP=OrderSend("GBPUSD",OP_BUY,Lots,ask_GBP,3,bid_GBP - sl_GBPUSD_long*point_GBP, ask_GBP+tp_GBPUSD_long*point_GBP,"M_1", MagicGBP, 0, Blue); if (ticketGBP > 0) { ZeroBarOrd=true; break; } else { Print ("Ошибка открытия Buy GBP#", ErrorDescription( GetLastError() ), " попытка ", Cnt); |
leonid553 |
![]()
Сообщение
#213
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Благодарю. Сейчас попробуем...
|
leonid553 |
![]()
Сообщение
#214
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Опять проблемы с блокировкой! В мультивалютном.
Пока поставил блокировку только на одну пару в мультивалютном. Но ..., эта пара вообще перестала включаться! Как было велено, на глобальном уровне заявил: Код int ExpertBars; static bool ZeroBarOrd; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { ExpertBars = Bars; return(0); } Идем далее . Код if (GBP_JPY) { //если "выключатель" включен if (!ExpertOrder(MagicGBPJPY)) { //если ордеров по паре GBPJPY нет //**********************Блокировка****************************** bool isNewBar=false; if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; } int Orders=OrdersTotal();//ExpertOrder(); if (isNewBar) { if (Orders!=0) ZeroBarOrd=true; //есть ордер else ZeroBarOrd=false; //нет ордера } //*************************************************************** if (!ZeroBarOrd) { //---------проверяем условие на покупку---------------------------- if ( бла-бла-бла ) { ticket_=OrderSend("... ... ...); if (ticket_<0){Print("Ошибка открытия ордера BUY GBPJPY#",GetLastError()); return(0); } // else ZeroBarOrd=true; } Видимо дело здесь в строке if (Orders!=0) ZeroBarOrd=true; //есть ордер Как ты писал выше вместо if (Orders!=0) нужно наверное задать - if (OrdersGBPJPY!=0) Но у нас не заявлена эта переменная! Не соображу - где и как её заявить! Видимо в строке выше int Orders=OrdersTotal();//ExpertOrder(); И согласовать её с начальным условием if (!ExpertOrder(MagicGBPJPY)) { //если ордеров по паре GBPJPY нет Запутался я совсем... Боюсь что, bool isNewBar=false; тож придется заявлять на глобальном уровне ... |
Dimi |
![]()
Сообщение
#215
|
![]() Группа: Активный участник Сообщений: 236 Регистрация: 12.4.2006 Пользователь №: 14 Спасибо сказали: 2 раз(а) ![]() |
Привет всем!!! Леонид, ты использовал хоть раз a-ATR_Trailing.mqh в советниках??? Сразу вроде бы мне понравился ( в некоторых местах очень красиво передвигает стоп, даже можно поучиться у него этому
![]() |
leonid553 |
![]()
Сообщение
#216
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
А что это такое? Не сталкивался с таким ни разу.
Кстати по определению тренда. Rosh, на форуме метаквотов приводил пример в своем советнике - как программно задать ( опред-ть) - тренд/не тренд. Там, правда, без стакана не разберешься..... http://codebase.mql4.com/ru/1256 |
leonid553 |
![]()
Сообщение
#217
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Вроде выясняется с блокировкой вопрос. Вот как сделал -
Код //**********************Блокировка****************************** //bool isNewBar=false; if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; } if (isNewBar) { if (ExpertOrder(MagicGBPJPY)) ZeroBarOrd=true; else ZeroBarOrd=false; //нет ордера } //*************************************************************** if (!ZeroBarOrd) { //---------проверяем условие на покупку---------------------------- Так и пришлось заявить //bool isNewBar=false; в глобальные переменные. Иначе - ошибка выдавалась! |
Dimi |
![]()
Сообщение
#218
|
![]() Группа: Активный участник Сообщений: 236 Регистрация: 12.4.2006 Пользователь №: 14 Спасибо сказали: 2 раз(а) ![]() |
А что это такое? Не сталкивался с таким ни разу. Кстати по определению тренда. Rosh, на форуме метаквотов приводил пример в своем советнике - как программно задать ( опред-ть) - тренд/не тренд. Там, правда, без стакана не разберешься..... http://codebase.mql4.com/ru/1256 Про это вот здесь почитай Да действительно без стакана не разобраться... Прийдется стакан налить ![]() |
leonid553 |
![]()
Сообщение
#219
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Dimi, посмотрел и вник в систему входов. Прикидывал и так и эдак... Пришел к выводу, что использование индикатора В-Bonds вряд ли целесообразно. При таком алгоритме входов.
Вот почему . Индюк считается трендовым. Иначе говоря, при отсутствии тренда канал сужается и здесь оправдана торговля отскоком от границ канала внутрь. Поскольку предполагается, что 90% времени цена находится в границах канала - внутри. При наличии тренда границы канала расширяются, а цена практически постоянно болтается на самой границе, многократно её пересекая. И мы входим в рынок на этих пересечениях, - против тренда!. Таким образом прежде, чем поймать перелом этого тренда, мы получим сначала пару лосей! Есть ещё один момент. В ОПИСАНИЯХ индикатора говориться, что если при тренде выброс цены уходит за границу более, чем на 30% от ширины канала, то неминуем быстрый возврат назад - внутрь границ. Вероятность взятия прибыли здесь = 80% . Но этот случай надо уже отдельно задавать программно, и это не так просто. На графике - типичный пример работы эксперта, - трeнд вниз, а входы в основном вверх - со всеми вытекающими.... Эскизы прикрепленных изображений |
leonid553 |
![]()
Сообщение
#220
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
А если взять менее чуствительный канальный индикатор? В самом простейшем случае - добавить обычную МА(син) и провести по ней верхнюю и нижнюю границы(желт)?
И ещё там ты спред задаешь во внешних параметрах и привязываешь его к стоплоссу. А зачем? Зачем вручную задавть спред для тестируемой пары, - когда советник может вычислить его самостоятельно! Эскизы прикрепленных изображений |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.5.2025, 21:54 |