[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 624

 
i999i:
int Count=0; //+------------------------------------------------------------------+ //|专家初始化函数| //+------------------------------------------------------------------+ int init() { Alert ("The init() function failed on startup"); return; } //+------------------------------------------------------------------+ //| expert start function| //+------------------------------------------------------------------+ int start() { double Price = Bid; Count++; Alert("New Tick " ,Count," Price = " ,Price); return; } //+------------------------------------------------------------------+ int deinit() { Alert ("Deinit() triggered on unloading"); return;























}

据我所知,在这个脚本中,每一个新的出价都应该出现一个信息......,但它没有.....,这是什么问题? ...该怎么做呢?

可能是在终端设置中打开了"允许EA交易"。
 

有没有办法修改止损,但将止盈留在一行(不要提及,即需要保持之前由其他函数设置的方式)?

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE)。

 
rigonich:


如果测试人员像服务器一样计算了很多订单,那么数据也会是多位数。

测试员,就像服务器一样,为每个新订单分配一个独特的订单号(票据),但服务器从经纪公司创建的那一刻起就这样做了,为其所有客户和所有工具。


明白了,谢谢:)))
 
rigonich:
可能在终端设置中有 "允许EA进行交易"。


没有帮助
 
i999i:

没有帮助

对不起--所有班级.......,谢谢你
 
lottamer:

有没有办法修改止损,但将止盈留在一行(不要提及,即需要保持之前由其他函数设置的方式)?

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE)。

OrderModify(OrderTicket(),OrderLots( ),stop_loss,OrderTakeProfit( ), 0,CLR_NONE)。

停止,所以你的手数是0。

 
这个订单也必须事先由OrderSelect 来选择。否则,门票往往可以变成任何东西。
 
Dimka-novitsek:
这个订单也必须事先由OrderSelect来选择。否则,门票往往可以变成任何东西。

是的,票据将是你指示的那个,但OrderLots( )和OrderTakeProfit( ) 的值,它可能对任何订单返回
 

早晨好!

我完全想不明白--追踪止损的条件不起作用。

//***************************************   
 
 bool nahodka=false;
  
 if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 
   
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL

因此,当订单还没有出现在历史记录上时,就立即被拿走了,这一点我完全不明白!

//***************************************   
 
  nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; 
 if (tocket==OrderTicket()) 
 if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 for ( i = OrdersTotal() - 1; i >= 0; i--)

而这是情况比较好的!"。如果我们有这一招,至少当订单已经在历史上时,它就会被纠正。

但在五次或十次中,有一次nahodka没有取值为真,而且没有发生进一步的修改!"。

 
是的,没错!!!。