ошибки подсчёта

 

У меня вот какая проблема

я начал тестить на RIZ9 експертов видимо созданых под форекс  

вобщем тесты идут всё срабатывает по условиям но вот результаты каждой сделки приходят с ошибками 

например 

buy 1.0 141132  s/l 141345 прибыль 93,54 

buy 1.0 141972 tp 142033 прибыль 5,38 

sell 1.0 141983 s/l 142000 прибыль -39,86

вот  эксперт подскажите пжлста может что то нужно изменить.


//----
extern int MagicNumber = 3345; // уникальный идентификатор эксперта.
extern double Lot = 1.0;
// расстояние до СтопЛосса в пунктах (0 - отключить СЛ)
extern int StopLoss = 50;
// расстояние до ТейкПрофита в пунктах (0 - отключить ТП)
extern int TakeProfit = 250;
/*
period - Период усреднения МА. Должен быть больше 0
method - Метод усреднения МА. Может быть от 0 до 3:
MODE_SMA 0 Простое скользящее среднее
MODE_EMA 1 Экспоненциальное скользящее среднее
MODE_SMMA 2 Сглаженное скользящее среднее
MODE_LWMA 3 Линейно-взвешенное скользящее среднее
price - Используемая цена. Может быть от 0 до 6:
PRICE_CLOSE 0 Цена закрытия
PRICE_OPEN 1 Цена открытия
PRICE_HIGH 2 Максимальная цена
PRICE_LOW 3 Минимальная цена
PRICE_MEDIAN 4 Средняя цена, (high+low)/2
PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3
PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4
*/
extern int fastMA_period = 9;
extern int fastMA_method = 0;
extern int fastMA_price = 0;

extern int slowMA_period = 18;
extern int slowMA_method = 0;
extern int slowMA_price = 0;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double fastMA_1 = iMA(NULL, 0, fastMA_period, 0, fastMA_method,
fastMA_price, 1);
double slowMA_1 = iMA(NULL, 0, slowMA_period, 0, slowMA_method,
slowMA_price, 1);
double fastMA_2 = iMA(NULL, 0, fastMA_period, 0, fastMA_method,
fastMA_price, 2);
double slowMA_2 = iMA(NULL, 0, slowMA_period, 0, slowMA_method,
slowMA_price, 2);
int _OrdersTotal = OrdersTotal();
bool ExpertOrder = false;
for(int z = _OrdersTotal - 1; z >= 0; z --)
{
if(!OrderSelect(z, SELECT_BY_POS, MODE_TRADES))
continue;
if(OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol())
continue;
ExpertOrder = true;
if(OrderType() == OP_BUY)
{
if(NormalizeDouble(slowMA_1 - fastMA_1, Digits ) > 0.0)
{
if(NormalizeDouble(fastMA_2 - slowMA_2, Digits ) >= 0.0)
{
if(!OrderClose(OrderTicket(), OrderLots(), Bid, 0, Blue))
Alert("Ошибка при закрытии BUY-позиции!!!");
}
}
continue;
}
if(OrderType() == OP_SELL)
{
if(NormalizeDouble(fastMA_1 - slowMA_1, Digits) > 0.0)
{
if(NormalizeDouble(slowMA_2 - fastMA_2, Digits ) >= 0.0)
{
if(!OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red))
Alert("Ошибка при закрытии SELL-позиции!!!");
}
}
continue;
}
}
if(ExpertOrder)
return;
double sl, tp;
if(NormalizeDouble(fastMA_1 - slowMA_1, Digits) > 0.0)
{
if(NormalizeDouble(slowMA_2 - fastMA_2, Digits) >= 0.0)
{
if(StopLoss > 0)
sl = NormalizeDouble(Bid - StopLoss*Point, Digits);
else
sl = 0.0;
if(TakeProfit > 0)
tp = NormalizeDouble(Bid + TakeProfit*Point, Digits);
else
tp = 0.0;
if(OrderSend(Symbol(), OP_BUY, Lot, Ask, 0, sl, tp,
"MA Expert", MagicNumber ) < 0)
Alert("Ошибка при открытии BUY-позиции!!!");
}
}
if(NormalizeDouble(slowMA_1 - fastMA_1, Digits) > 0.0)
{
if(NormalizeDouble(fastMA_2 - slowMA_2, Digits) >= 0.0)
{
if(StopLoss > 0 )
sl = NormalizeDouble(Ask + StopLoss*Point, Digits);
else
sl = 0.0;
if(TakeProfit > 0)
tp = NormalizeDouble(Ask - TakeProfit*Point, Digits);
else
tp = 0.0;
if(OrderSend(Symbol(), OP_SELL, Lot, Bid, 0, sl, tp,
"MA Expert", MagicNumber) < 0)
Alert("Ошибка при открытии SELL-позиции!!!");
}
}
return(0);
}
//+------------------------------------------------------------------+



 
asd13 >>:

У меня вот какая проблема

я начал тестить на RIZ9 експертов видимо созданых под форекс  

вобщем тесты идут всё срабатывает по условиям но вот результаты каждой сделки приходят с ошибками 

например 

buy 1.0 141132  s/l 141345 прибыль 93,54 

buy 1.0 141972 tp 142033 прибыль 5,38 

sell 1.0 141983 s/l 142000 прибыль -39,86


А в чем ошибка то ?

Трал наверное работает, -если я правильно понял вопрос...

 
rid >>:

А в чем ошибка то ?

Трал наверное работает, -если я правильно понял вопрос...


в прибыли 

141345-141132=213 а никак не 93,54 

а если тэйк профит скальперский то вместо прибыли совсем показываются убытки 

 

213 это пункты, а 93.54 сумма прибыли, стоимость одного пункта для разных инструментов разная

 
asd13 >>:


в прибыли 

141345-141132=213 а никак не 93,54 

а если тэйк профит скальперский то вместо прибыли совсем показываются убытки 

При закрытии сделки размер=(спред+комиссия) превышает величину текущей прибыли и позиция закрывается в минусе.

Щелкните пр. мышкой по окошечку терминала (где сделки отображаются) и поставьте галочку в опцию КОМИССИЯ - сами увидите. 

Кроме того, в онлайне  (в отличие от тестера)  вас ждет ещё один оч. неприятный сюрприз, т.к. подобные инструменты (RIZ9 и др.) открываются/закрываются не по той цене, что вы видите на графике, а по худшей цене, по цене так. наз. тикера (RIZ9#I). 

Откройте в ОБЗОРЕ РЫНКА тикер вашего инструмента, - отследите закрытие визуально  и "всё поймёте..." ! 

 
rid >>:

При закрытии сделки размер=(спред+комиссия) превышает величину текущей прибыли и позиция закрывается в минусе.

Щелкните пр. мышкой по окошечку терминала (где сделки отображаются) и поставьте галочку в опцию КОМИССИЯ - сами увидите. 

Кроме того, в онлайне  (в отличие от тестера)  вас ждет ещё один оч. неприятный сюрприз, т.к. подобные инструменты (RIZ9 и др.) открываются/закрываются не по той цене, что вы видите на графике, а по худшей цене, по цене так. наз. тикера (RIZ9#I). 

Откройте в ОБЗОРЕ РЫНКА тикер вашего инструмента, - отследите закрытие визуально  и "всё поймёте..." ! 



да я предпологал про комиссию но вот насчёт тикера (RIZ9#I). не совсем я понял 

RIZ9 bid 132385 ask 132385 

RIZ9#I bid 132285 ask 132295 

по какой цене я в данный момент куплю и продам? 

А вообще я пока  просто хочу протестировать несколько экспертов с условиями близкими к ФОРТС т.е 

как мне протестировать тот же RIZ9 без комиссии ДЦ ? Это вообще осуществимо? 

 

Сразу запомните, что по таким фьючам спред тикера в тестере не учитывается и поэтому (только по одной этой причине) результат в реале/онлайне  будет на 30-45 проц. хуже, чем в тестере. В тестере учитывается только комиссия,  - но не спред тикера.

//---------------------------------------------------------

Сейчас рынок стоит и цены в ОБЗОРЕ не совсем корректные. В онлайне, скорее всего, будет так: 

RIZ9 - bid 132385 ask 132385
RIZ9#I bid 132275 ask 132495 

Иначе говоря, -  На графике RIZ9 будет видна   цена 132385, а

- позиция селл откроется по цене 132275;

- позиция бай откроется по цене  -132495 ;

Тоже самое и при закрытии позиции. На графике будет одна цена, а закроется любая позиция (примерно) на 100 пипсов хуже...

Да еще и просказывание в худшую сторону тож подгадит изрядно, особенно при пипсовке

//----------------------------

Как протестить без комиссии, я не знаю...