- Оптимизация производительности эксперта (или проблема таки в индикаторах?)
- spread wanted!!!)))
- Как протестировать сразу весь портфель из валютных пар, на которых торгует советник
О! Ким, коль застала вас тут -- прошёл слух, что в вашей библиотеке есть функция, позволяющая узнать: была последняя сделка в "+" или в "-". Вроде всё пробежала -- не нашла?..
Можно я,можно ?
//+----------------------------------------------------------------------------+ // Возвращает знак прибыли последней позиции + //-----------------------------------------------------------------------------+ int GetProfitLastClosePos(string Sy="",int Magik=-1){ int i, count=0;double profit=0; if(Sy=="0"){Sy=Symbol();} for(i=OrdersHistoryTotal()+1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){ if(OrderSymbol()==Sy){ if(OrderType()==0||OrderType()==1){ if(OrderMagicNumber()==Magik||Magik==-1){ if(OrderCloseTime()>count){ count=OrderCloseTime(); profit=OrderProfit(); } } } } } } if(profit>0){return(1);} if(profit<0){return(-1);} return(0); }
тут есть подводный камень у подобных функций!
если в один момент времнни одновременно закрылось два ордера!
один из которых закрылся в + а другой в -,
чисто теоритически возможно, в практике такое маловероятно! но на ГЕПЕ возможно!
квант времени для оценки хотя бы минута ( если не пипсарь )
--
такую сделку рассматривать не как два ордера а как один! и суммарно выводить профит
---
обычно если неприятность не должна случится она случается
(С) ЗАКОН МЕРФИ
тут есть подводный камень у подобных функций!
если в один момент времнни одновременно закрылось два ордера!
один из которых закрылся в + а другой в -,
чисто теоритически возможно, в практике такое маловероятно! но на ГЕПЕ возможно!
квант времени для оценки хотя бы минута ( если не пипсарь )
--
такую сделку рассматривать не как два ордера а как один! и суммарно выводить профит
---
обычно если неприятность не должна случится она случается
(С) ЗАКОН МЕРФИ
В таком случае
//+----------------------------------------------------------------------------+ // Возвращает знак прибыли последней позиции + //-----------------------------------------------------------------------------+ int GetProfitLastClosePos(string Sy="",int Magik=-1){ int i, count=0;double profit=0; if(Sy=="0"){Sy=Symbol();} for(i=OrdersHistoryTotal()+1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){ if(OrderSymbol()==Sy){ if(OrderType()==0||OrderType()==1){ if(OrderMagicNumber()==Magik||Magik==-1){ if(OrderCloseTime()>=count){ Получаем суммарный прфит одновременно закрытых ордеров count=OrderCloseTime(); profit=OrderProfit(); } } } } } } if(profit>0){return(1);} if(profit<0){return(-1);} return(0); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования