MQL4 - automated forex trading   /  

Форум

Помогите найти ошибку.

К списку тем Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
2
AndreyCH 20.03.2006 13:30 
Смысл того, что делает советник очень простой, открываем каждые 25 (27 или любое другое число) пунктов ордера на SELL и BUY.
Так вот работает только на парах с 2-мя цифрами после запятой, а с 4-мя цифрами не работает!!! :-(

В чем может быть дело?

вот текст советника
extern double Step = 10; extern double TakeProfit = 25; int start() { double ticket = 0; int ttl = OrdersTotal(); int cnt = 0; for( cnt=0; cnt < ttl; cnt++ ){ if( OrderSelect( cnt, SELECT_BY_POS ) == true) { if (Bid == OrderOpenPrice() ) return( 0 ); } } double z = MathMod ( Bid, Point * Step); if (z == 0) { ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, Bid + TakeProfit * Point, "My order #", 16384, 0, Green); ticket = OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0, Bid - TakeProfit * Point, "My order #", 16384, 0, Green); } //-------------------------------------------------------------------+ return(0); } //+------------------------------------------------------------------+

Организуйте багтрекинг и техсаппорт для своей компании

В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем.


avatar
169
Editor 20.03.2006 17:37 
AndreyCH:
Смысл того, что делает советник очень простой, открываем каждые 25 (27 или любое другое число) пунктов ордера на SELL и BUY.
Так вот работает только на парах с 2-мя цифрами после запятой, а с 4-мя цифрами не работает!!! :-(
В чем может быть дело?
Может быть так:
extern double Step = 10; extern double TakeProfit = 25; int start() { double ticket; int ttl = OrdersTotal(); if(ttl == 0) { ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, Bid + TakeProfit * Point, "My order #", 16384, 0, Green); ticket = OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0, Bid - TakeProfit * Point, "My order #", 16384, 0, Green); return(0); } for(int cnt=0; cnt < ttl; cnt++ ) if(OrderSelect(cnt, SELECT_BY_POS) == true) if(Bid == OrderOpenPrice()) continue; else if(MathMod(MathAbs(Bid - OrderOpenPrice()), Point * Step) == 0) { ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, Bid + TakeProfit * Point, "My order #", 16384, 0, Green); ticket = OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0, Bid - TakeProfit * Point, "My order #", 16384, 0, Green); } //---- return(0); } //+------------------------------------------------------------------+
К списку тем  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий