нда..
так чего делать-то?
так чего делать-то?
правильно формулировать вопрос. и правильно оформлять. Вам трудно было использовать тэг pre?
я попытался разобраться, но это трудно сделать в неформатированном тексте.
откуда Вы знаете, что на этом баре не было цены 0.6815? Вы бы привели цены OHLC.
я попытался разобраться, но это трудно сделать в неформатированном тексте.
откуда Вы знаете, что на этом баре не было цены 0.6815? Вы бы привели цены OHLC.
вроде простейший эксперт-то.. но я в непонятках :-((((
/*[[ Name := exampl Author := Copyright © 2003, Company Link := <a href=http://www.company.com/>http://www.company.com/</a> Lots := 1.00 Stop Loss := 20 Take Profit := 40 Trailing Stop := 0 ]]*/ Variable : shift(0),prevtime(0),signal(0),first(true),loopBegin(134),loopEnd(1); Variable : GreenLineA(0),RedLineA(0),BlueLineA(0); Variable : cnt(0),qOP_buy(0),qOP_sell(0),qLP_buy(0),qLP_sell(0); SetLoopCount(0); // проверка на загрузку новых баров If (prevtime == Time) Then exit; prevtime=Time; // если первая загрузка, то очищаем график if (first) then DelObject("",0,0,0,0); first = false; shift = 1; // определение линий аллигатора GreenLineA = iAlligator(13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,shift); RedLineA = iAlligator(13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,shift); BlueLineA = iAlligator(13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,shift); if (TotalTrades = 0) then { // если нет вообще позиций, ставим произвольный ордер SetOrder(OP_BUYLIMIT,Lots,ask+20*Point,0,ask-20*Point,Ask+TakeProfit*Point,red); // вот тут я не понял... я ставлю ОТЛОЖЕННЫЙ(!!) ордер, по цене, далеко от текущей. // а при тестировании ордер открывается СРАЗУ после выставления.. :-(((( по этой,ask+20*Point, цене exit; } else { qOP_buy = 0;qOP_sell = 0;qLP_buy = 0;qLP_sell = 0; for cnt = 1 to TotalTrades { // считаем ордера и открытые позы Switch Ord(cnt,VAL_TYPE) { Case 0: /* if (ask-BlueLineA > 15*Point) then // если челюсть дальше 15 п, двигаем стоп ModifyOrder(Ord(cnt,VAL_TICKET),ask,BlueLineA,Ask+TakeProfit*Point,blue); */ qOP_buy++;break; // и считаем открыт позы Case 2: /* if (Ord(cnt,VAL_TYPE) = OP_BUYLIMIT AND Ord(cnt,VAL_OPENPRICE)<BlueLineA) then { DeleteOrder(Ord(cnt,VAL_TICKET),blue);cnt--; } else */ qLP_buy++; break; // считаем отложенные ордера на покупку Case 4: alert("непорядок - есть стоп-ордера на покупку");break; Case 3: qLP_sell++;break; // считаем отложенные ордера на продажу Case 5: alert("непорядок - есть стоп-ордера на продажу");break; }; } if (qLP_buy != 0) then { // если есть отложеный ордер for cnt = 1 to TotalTrades { if (Ord(cnt,VAL_TYPE) = OP_BUYLIMIT) then break; } // нажодим отложенный ордер ModifyOrder(Ord(cnt,VAL_TICKET),ask+20*Point,BlueLineA,Ask+TakeProfit*Point,blue); // и пытаемся его изменить alert("а сюда как попасть?????"); } };
при запуске на тестирование он не ставит отложеных ордеров..
я что-то упускаю?
да, забыл отметить, что это смотрелось на 15м графике.. на 30м и 1ч тоже самое (профиты и стопы выставляются сооответственно)
SetOrder(OP_BUYLIMIT,Lots,ask+20*Point,0,ask-20*Point,Ask+TakeProfit*Point,red);
А кто Вас заставляет ставить заведомо неверный ордер?
Похоже что только желание указать на ошибку.
а почему он неверный? :-(
параметры верные?
операция, лот, цена ордера далекая от реал цены, проскальзывание=0, стоплосс - тоже далек от цены, профит.
почему он срабатывает сразу????
параметры верные?
операция, лот, цена ордера далекая от реал цены, проскальзывание=0, стоплосс - тоже далек от цены, профит.
почему он срабатывает сразу????
BUYLIMIT должен быть ниже текущей рыночной цены, а не выше (Ask+20*Point).
В Вашем случае(если хотите ставить BUY ордер на пробой уровня) ордер надо ставить BUYSTOP.
В Вашем случае(если хотите ставить BUY ордер на пробой уровня) ордер надо ставить BUYSTOP.
да.. хм.. не знал :-(
спасибо
спасибо
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
мт3 еще в поддержке? надеюсь, что так, ибо на мт4 как-то не торопится никто переходить..
вопрос про тестирование эксперта.
написал эксперт, и обнаружил, что отложенные ордера срабатывают СРАЗУ после установки.
причем по цене, в нем проставленном, и совершенно далеком от цен данного бара..
искал в архиве - не нашел такой темы :-((
т е написано
...
SetOrder(OP_BUYLIMIT,Lots,ask+20*Point,0,ask-20*Point,Ask+TakeProfit*Point,red);
// цену открытия можно ставить любую
..
а в логе вот чего :
exampl on EURGBP,M15
Op Time Type Ticket Lots Price SL / TP Profit Balance
1 2004.09.17 17:30 buy limit 1 1.00 0.6815 0.6775 / 0.6835 // устанавливает
2 2004.09.17 17:30 process 1 1.00 0.6815 0.6775 / 0.6835 // и на этом же баре .. но там нет такой цены !!
3 2004.09.21 10:01 t/p 1 1.00 0.6835 0.6775 / 0.6835 386.86 10386.86
или я чего не так делаю?