//проверяем если есть поза, стоит стоп и не стоит БУ if((OrdersTotal()>0)&&(OrderStopLoss()!=0)&&(OrderStopLoss()!= SLBU))
ModifySLinBU();//передаем управление в ф-ю установки БУ
或者是
//проверяем если есть поза, стоит стоп и не стоит БУ if((OrdersTotal()>0)&&(OrderStopLoss()!=0&& SLBU))
ModifySLinBU();//передаем управление в ф-ю установки БУ
//+------------------------------------------------------------------+//| Открытие позиции на покупку//+------------------------------------------------------------------+void OpenBuy(){RefreshRates();if((OrdersTotal()==0)&&(Ask== Enter))//бъем до упора эту цену{if(IsTradeContextBusy()==false){OrderSend(Symbol(),OP_BUY, Lot, Enter, Slippage,0,0,0, MAGIC,0, clOpenBuy);if(OrdersTotal()>0){
Modify =false;//флаг установки SL и TP - не установлен
ModifySL();}elsePrint("Ошибка установки ордера BAY по цене ",OrderOpenPrice()," код ошибки ="+GetLastError());}}if( UseSound)PlaySound( NameFileSound);}//+------------------------------------------------------------------+//| Открытие позиции на продажу//+------------------------------------------------------------------+void OpenSell(){RefreshRates();if((OrdersTotal()==0)&&(Bid== Enter))//бъем до упора эту цену{if(IsTradeContextBusy()==false){OrderSend(Symbol(),OP_SELL, Lot, Enter, Slippage,0,0,0, MAGIC,0, clOpenSell);if(OrdersTotal()>0){
Modify =false;//флаг установки SL и TP - не установлен
ModifySL();}elsePrint("Ошибка установки ордера SELL по цене ",OrderOpenPrice()," код ошибки ="+GetLastError());}}if( UseSound)PlaySound( NameFileSound);}//+------------------------------------------------------------------+//| Модификация ордера на установку SL и TP |//+------------------------------------------------------------------+void ModifySL(){if(OrderSelect(0, SELECT_BY_POS)==true)// Если есть открытый ордер{if(OrderType()==OP_BUY){
StopL = SLB();
TakeP = TPB();
Modify =OrderModify(OrderTicket(),OrderOpenPrice(), StopL, TakeP,0,Red);if( Modify ==false)Print("Ошибка изменения ордера #",OrderTicket()," при попытке установить СТОП ", StopL,". Текущая цена- ",Bid,", код ошибки ="+GetLastError());}else{
StopL = SLS();
TakeP = TPS();
Modify =OrderModify(OrderTicket(),OrderOpenPrice(), StopL, TakeP,0,Red);if( Modify ==false)Print("Ошибка изменения ордера #",OrderTicket()," при попытке установить СТОП ", StopL,". Текущая цена- ",Ask,", код ошибки ="+GetLastError());}}}
然后int Start () 检查修改...
//+------------------------------------------------------------------+//| Проверка открытого оредра на установку SL,TP и установка SL,TP//+------------------------------------------------------------------+if((OrdersTotal()>0)&&( Modify ==false)) ModifySL();//SL и TP - не установлен
for(int i=1; i<=OrdersTotal(); i++)//Цикл по всем ордерам,..{//отражённым в терминалеif(OrderSelect( i-1, SELECT_BY_POS)==true)//Если есть следующий {if(OrderSymbol()==Symbol()){if(OrderType()==OP_BUY){...}else{...}}}}//Конец тела цикла
另外,我在三个标准上检查脚的状况是否正确?
或者是
你在这个论坛上听说过 "时期转换 "吗?
让我解释一下。例如,H4蜡烛图在所有经纪公司都是不同的,这很明显--因为服务器时间不同。如何根据时间转移这些烛台,在输出端获得其他特征--最大、最小、开盘、收盘......。
这一切是为了什么?我的经纪公司有相同的蜡烛图,我的专家顾问实施的策略也是有效的,但有许多图表不匹配的错误。(据我所知,这是我的经纪公司的问题,在论坛参与者的分析过程中,它不受欢迎!)
但在下载了MetaQuotes历史记录后,没有任何错误,但即使在视觉测试 中,蜡烛图也没有显示很多信号,使用它们的EA测试给出了不好的结果。
这就是我开始考虑的原因--"转移 "烛台,使之与我的经纪公司或其他公司相吻合。
如何减少你的直流错误并提高建模质量?
欧元/0.1-10手/1年/300-322000
看看我是否正确处理了订单变更?这里可能存在哪些隐患?
然后int Start () 检查修改...
谢谢你的帮助!)
我目前正在学习如何在不同的符号上同时运行一个EA...
你能告诉我这个变体是否适合寻找属于EA正在运行的符号的订单?