[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 17

 

嗨!问题是,如果我们只知道对象的描述,我们如何知道对象是否被手动删除。即对象有一个未知的名称,获利 被附加到对象上,如果对象被删除,删除获利,我们不知道对象的名称....。

有什么办法可以改变对象的名称吗 ????

 

请帮助我完善该EA!我希望它在信号出现时打开一个订单,在下一个订单出现时打开,以此类推,不管是否有未结订单。

请告诉我什么是错的!

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

如果(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

打印(flag,flagg)。

Ma_1 - 短
Ma_2 - 长

当Ma_1>Ma_2不停地发出news.wav提示音,并打印出0 1(即flag=0 flagg=1)。

但怎么可能当flagg=1时,条件(Ma_1>Ma_2 && flagg==0)被满足,{PlaySound("news.wav")通过?

 
大家好,我需要重新制作EA,使其在初始金额的某一百分比后关闭所有头寸,例如,如果没有开出订单,例如,requitty为1000,而requitty的%被设置为5%,所以它关闭所有requitty为1050的头寸,我使EA记录了一个全局变量,并且他有这个值来计算和关闭头寸,但是EA并不想关闭。我是这样做的,余额增加,我必须以5%的 "资产 "关闭一些头寸,但它不是1050,有时我必须再等一段时间,或者价格改变方向,我得到的是损失而不是利润,请知道和面临过全球变化的人提供帮助!"。!!非常感谢你的答复。
附加的文件:
 
晚上好!我是否正确理解,在
iStochastic
模式
我指的是K线还是D线?此外,0是K,1是D?
 

再看看这样的一个变体,没有全局变量

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
是的,在你改变泥浆之前,不应该有任何信号!!。算是吧...可能是看了整个代码!我不知道,它似乎没有显示...
 
我需要顾问在没有未结订单时记住eQuity值,例如1000,正如我写的%-5,当所有头寸关闭时,eQuity值是1050,我得到了它,所以一些订单被关闭,余额增加,但所有订单的利润是负的,顾问等待直到利润是+,然后关闭所有头寸。
 
lottamer:

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

如果(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

打印(flag,flagg)。

Ma_1 - 短
Ma_2 - 长

当Ma_1>Ma_2不停地发出news.wav提示音,并打印出0 1(即flag=0 flagg=1)。

但是,当flagg=1时,条件(Ma_1>Ma_2 && flagg==0)被满足,{PlaySound("news.wav")通过,这怎么可能?


为每个条件分别打印标志的状态。你这样做是因为第二个旗子的状态在条件中没有被考虑进去。

P.S.而且,打印出Print("flag=",flag, "flagg=",flagg) 更方便,以避免混淆。

 

这就是我在演示中的机器人的情况。我不太记得我是怎么想到要写这个的。

如果(Profit>AccountBalance()*koefitsientudaleniya){
int Total=OrdersTotal();
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol( ) != Symbol()) 继续;
if(OrderMagicNumber() != 450) continue;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red) ;Print(" i ", i,"GetLastError()CloseOP_SELL", GetLastError());};}。
如果(OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " ), i," GetLastError()CloseOP_BUY ", GetLastError());}}//如果利润超过我们指定的某个值,我们将关闭所有的订单!
//----

或者让我们的长者朋友建议我们......。