Добрый день!
При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается
дополнительно сумма OrderCommission()+OrderSwap(), почему ?
Ниже мой код:
//+----------------------------------------------------------------------------+
//| Описание
: Функция возвращает сигнал
закрытия
|
//+----------------------------------------------------------------------------+
int CloseSymbol(string
vSymbol)
{
bool error1=true;
double mybid = MarketInfo(vSymbol,MODE_BID);
double myask = MarketInfo(vSymbol,MODE_ASK);
double dig=MarketInfo(vSymbol,MODE_DIGITS);
ma_sred1 =NormalizeDouble(iMA(vSymbol,PERIOD_M30,sred,0,MODE_SMA,PRICE_CLOSE,1),dig);
//for M5
double totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap());
//if
(OrderProfit()+OrderCommission()+OrderSwap()>0) ClosePosBySelect(); кимовское
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=Magic4 || OrderSymbol()!=vSymbol) continue;
//--- check order type
if(OrderType()==OP_BUY)
{
if((Close[1]>ma_sred1) && (OrderProfit()+OrderCommission()+OrderSwap()>0))//)
{
if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White))
Print("OrderClose error ",GetLastError());
}
// break;
}
if(OrderType()==OP_SELL)
{
if((Close[1]<ma_sred1) && ( OrderProfit()+OrderCommission()+OrderSwap()>0))
{
if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White))
Print("OrderClose error ",GetLastError());
}
// break;для циклов for, while прекращает их действия
}
}
return(0);
} //end
//===================================================================================================
Вставить код нормально религия не позволяет?
Вставить код нормально религия не позволяет?
При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается
Каким образом по приведенному коду определить, что в тестере не учитывается комиссия и свопы?
Немного исправил код, но при тестах есть прибыли менее 1$,при лоте 0,1 комиссия равна 1$+своп, поэтому думаю что где-то в коде ошибка, или при демо тестах комиссия и своп не учитываются. //+----------------------------------------------------------------------------+ //| Описание : Функция возвращает сигнал закрытия | //+----------------------------------------------------------------------------+ int CloseSymbol(string vSymbol) { bool error1=true; double mybid = MarketInfo(vSymbol,MODE_BID); double myask = MarketInfo(vSymbol,MODE_ASK); double dig=MarketInfo(vSymbol,MODE_DIGITS); ma_sred15 =NormalizeDouble(iMA(vSymbol,PERIOD_M15,sred,0,MODE_SMA,PRICE_CLOSE,1),dig); double clos1=0; double totalprofit; totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap()); clos1=NormalizeDouble(iClose(vSymbol,PERIOD_M15,1),dig); //m30 //------------------------------------------------------------------- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=Magic15 || OrderSymbol()!=vSymbol) continue; //--- check order type if(OrderType()==OP_BUY) { if((clos1>ma_sred15) && ( totalprofit>0))//) { if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White)) Print("OrderClose error ",GetLastError()); } // break; } if(OrderType()==OP_SELL) { if((clos1<ma_sred15) && ( totalprofit>0)) { if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White)) Print("OrderClose error ",GetLastError()); } // break;для циклов for, while прекращает их действия } } return(0); } //end //=================================================================================================================== 1 2018.01.02 02:30 buy 1 0.10 0.97855 0.96801 1.00993 0.00 10000.00 2 2018.01.02 03:00 close 1 0.10 0.98024 0.96801 1.00993 11.81 10011.81 3 2018.02.13 18:30 buy 2 0.10 0.98720 0.97666 1.01858 0.00 10011.81 4 2018.02.13 18:45 close 2 0.10 0.98851 0.97666 1.01858 8.92 10020.73 5 2018.03.13 19:30 sell 3 0.10 1.01739 1.02793 0.98601 0.00 10020.73 6 2018.03.14 01:30 close 3 0.10 1.01689 1.02793 0.98601 2.84 10023.57 7 2018.03.22 06:15 buy 4 0.10 0.99913 0.98859 1.03051 0.00 10023.57 8 2018.03.22 10:45 close 4 0.10 0.99939 0.98859 1.03051 0.97 10024.54 9 2018.04.03 20:00 buy 5 0.10 0.98225 0.97171 1.01363 0.00 10024.54 10 2018.04.03 20:45 close 5 0.10 0.98282 0.97171 1.01363 3.32 10027.86 11 2018.05.16 06:00 buy 6 0.10 0.95956 0.94902 0.99094 0.00 10027.86 12 2018.05.16 07:00 close 6 0.10 0.96044 0.94902 0.99094 5.67 10033.53 13 2018.07.11 18:45 buy 7 0.10 0.96964 0.95910 1.00102 0.00 10033.53 14 2018.07.11 19:00 close 7 0.10 0.97304 0.95910 1.00102 24.77 10058.30 15 2018.07.19 22:15 sell 8 0.10 0.97601 0.98655 0.94463 0.00 10058.30 16 2018.07.19 23:00 close 8 0.10 0.97518 0.98655 0.94463 5.29 10063.59 17 2018.08.13 19:00 buy 9 0.10 0.95487 0.94433 0.98625 0.00 10063.59 18 2018.08.13 20:15 close 9 0.10 0.95510 0.94433 0.98625 0.75 10064.34 19 2018.08.15 20:00 sell 10 0.10 0.95127 0.96181 0.91989 0.00 10064.34 20 2018.08.15 22:00 close 10 0.10 0.95106 0.96181 0.91989 0.59 10064.93 21 2018.09.04 09:15 sell 11 0.10 0.94635 0.95689 0.91497 0.00 10064.93 22 2018.09.04 10:45 close 11 0.10 0.94523 0.95689 0.91497 7.49 10072.42 23 2018.09.13 17:30 sell 12 0.10 0.93782 0.94836 0.90644 0.00 10072.42 24 2018.09.13 18:45 close 12 0.10 0.93687 0.94836 0.90644 6.20 10078.62 25 2018.10.15 19:45 buy 13 0.10 0.92608 0.91554 0.95746 0.00 10078.62 26 2018.10.15 21:30 close 13 0.10 0.92634 0.91554 0.95746 0.97 10079.59 27 2018.10.19 17:30 sell 14 0.10 0.93500 0.94554 0.90362 0.00 10079.59 28 2018.10.19 18:30 close 14 0.10 0.93404 0.94554 0.90362 6.28 10085.87 29 2018.12.03 03:15 sell 15 0.10 0.97552 0.98606 0.94414 0.00 10085.87 30 2018.12.03 04:45 close 15 0.10 0.97495 0.98606 0.94414 3.32 10089.19 31 2019.01.02 08:15 buy 16 0.10 0.95689 0.94635 0.98827 0.00 10089.19 32 2019.01.02 10:30 close 16 0.10 0.95754 0.94635 0.98827 3.93 10093.12 33 2019.02.18 21:15 buy 17 0.10 0.94291 0.93237 0.97429 0.00 10093.12 34 2019.02.18 22:15 close 17 0.10 0.94331 0.93237 0.97429 2.03 10095.15 35 2019.02.21 06:30 buy 18 0.10 0.94288 0.93234 0.97426 0.00 10095.15 36 2019.02.21 07:45 close 18 0.10 0.94323 0.93234 0.97426 1.65 10096.80
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается
дополнительно сумма OrderCommission()+OrderSwap(), почему ?
Ниже мой код:
//+----------------------------------------------------------------------------+
//| Описание : Функция возвращает сигнал закрытия |
//+----------------------------------------------------------------------------+
int CloseSymbol(string vSymbol)
{
bool error1=true;
double mybid = MarketInfo(vSymbol,MODE_BID);
double myask = MarketInfo(vSymbol,MODE_ASK);
double dig=MarketInfo(vSymbol,MODE_DIGITS);
ma_sred1 =NormalizeDouble(iMA(vSymbol,PERIOD_M30,sred,0,MODE_SMA,PRICE_CLOSE,1),dig); //for M5
double totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap());
//if (OrderProfit()+OrderCommission()+OrderSwap()>0) ClosePosBySelect(); кимовское
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=Magic4 || OrderSymbol()!=vSymbol) continue;
//--- check order type
if(OrderType()==OP_BUY)
{
if((Close[1]>ma_sred1) && (OrderProfit()+OrderCommission()+OrderSwap()>0))//)
{
if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White))
Print("OrderClose error ",GetLastError());
}
// break;
}
if(OrderType()==OP_SELL)
{
if((Close[1]<ma_sred1) && ( OrderProfit()+OrderCommission()+OrderSwap()>0))
{
if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White))
Print("OrderClose error ",GetLastError());
}
// break;для циклов for, while прекращает их действия
}
}
return(0);
} //end
//===================================================================================================