任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 46

 
KarpovNikolay:

大家好。我是个交易新手,我在用专家顾问做模拟,但我想用45美元开始真正的交易。我现在正在测试EA,所以我想使用信号。我使用MT4。我已经选择了一个清单,希望你能帮助我选择最佳信号。以下是名单。

https://www.mql5.com/ru/signals/10276

https://www.mql5.com/ru/signals/11021

https://www.mql5.com/ru/signals/6283

https://www.mql5.com/ru/signals/10964

https://www.mql5.com/ru/signals/9649

这是初学者的运气!但最好不要浪费时间,学习交易,学习语言!也许你会很幸运!
 
下午好,请帮助我,如果变量sig=1需要pol变量来记住余额,并且无论多久它都不会改变其值,如果sig=1又要记住当前的,请给我代码。
 
sannin:
请帮助我,请帮助我,如果变量sig=1会记住余额,并且不改变它的值,不管它接下来会显示多少,如果sig=1又会记住当前的,请给我代码。
    if (сиг == 1) pol = AccountBalance();
 
TarasBY:


如果余额发生变化,性别将等于新的余额

如果你做以下事情,就可以立即看到这一点

ǞǞǞ
Comment("\n balance: ", pol);

pol=AccountBalance()。

 

我做了一个专家顾问来测试交易,但我无法弄清楚一件事。

使用最大和最小的MAs打开Bay/sell

//打开 BUY位置 的条件
if(MA_L1<MA_L0&&Ask<)=MA_L0&MA_0>MA_1&&HA_up>HA_dw)

//开立卖出头寸的条件
if(MA_H1>MA_H0&&Bid>=MA_H0&MA_0<MA_1&HA_up<HA_dw)

#include <b-Lots.mqh>
extern double TrailingStop = 30;
extern double Sploss = 15;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start() {
   double HA_up,HA_dw;
   double MA_H0,MA_H1,MA_L0,MA_L1,MA_0,MA_1;
   int i, cnt, ticket, total;
   bool flag=true;

   if(Bars<100) {
      Print("bars less than 100");
      return(0); 
   }
// Проверяем стоит ли открываться
   
   cnt=OrdersHistoryTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY )) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   cnt=OrdersTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   if(!flag) return(0); 
//-----------------------------------------------
   MA_H0=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,0);
   MA_H1=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,1);
   MA_0=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,0);
   MA_1=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,1);
   MA_L0=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,0);
   MA_L1=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,1);
   HA_up=iCustom(0,0,"Heiken Ashi",3,0);
   HA_dw=iCustom(0,0,"Heiken Ashi",2,0);

//задали все данные 

   total=OrdersTotal();
   if(total<1) 
     {
      // Проверка свободной маржи
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // Условие открытие позиции BUY
      if(MA_L1<MA_L0&&Ask<=MA_L0&&MA_0>MA_1&&HA_up>HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-Sploss*Point,0,"",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
      // Условие открытие позиции SELL
      if(MA_H1>MA_H0&&Bid>=MA_H0&&MA_0<MA_1&&HA_up<HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+Sploss*Point,0,"",16384,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
      return(0);
     }
    
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol())  
        {
         if(OrderType()==OP_BUY)   // длинная позиция открыта
           {
           if(NormalizeDouble (MathAbs(MA_H0-Bid),Digits)<Point)
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
                 return(0); 
                }
            // трейлинг-стоп для длинной позиции
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
           if(NormalizeDouble (MathAbs(MA_L0-Ask),Digits)<Point)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
            // трейлинг-стоп для короткой позиции
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }

问题:如果当前蜡烛图上的头寸没有平仓(条件未到),如何在下一个蜡烛图上平仓,当它与MA_0= iMA ( 0, 0, 3, 0, MODE_EMA, PRICE_MEDIAN, 0 );

我们有一个平仓条件:穿越当前蜡烛图的高点或低点,但我们需要在下一个蜡烛图上开仓后平仓。

我们可以写if ( NormalizeDouble ( MathAbs (MA_0-Ask), Digits )< Point ),但如何满足第二根开口蜡烛的条件。


如果你能用代码回答,这个例子就会更清楚。

 
sannin:


如果余额发生变化,pol将等于新的余额。

如果你做以下工作,就能立即看到这一点

ǞǞǞ
Comment("\n balance: ", pol);

pol=AccountBalance()。

你不能用这个代码检查任何东西。Pol 变量必须全局 声明,Sig 变量也是如此。
 
TarasBY:
这段代码没有检查任何东西。Pol 变量必须全局 声明,Sig 变量也是如此。


嗯......如何做......?本节显示Pol变量的当前值。

起初,一半的订单显示初始余额

我开了一个订单,我的余额等于初始余额,但如果我在盈利状态下关闭,或者反过来,余额就会改变。

我需要性在某些条件下成为一个新的平衡,在这些条件得到满足之前,它等于最初的平衡。

 
borilunad:
对于MQL4代码,使用SRC,每个人都可以弄清楚,并帮助你!

谢谢你,我会知道的。
 
sannin:


嗯......如何做......?该注释显示了性别变量的当前值

起初,一半的订单显示初始余额

我开了一个订单,我的余额等于初始余额,但如果我在盈利状态下关闭,或者反过来,余额就会改变。

我需要在某些条件下使下限成为新的余额,在满足条件之前,下限等于初始余额。

有一类人不知道如何倾听,要帮助他们几乎是不可能的。
 
TarasBY:
有一类人不知道如何倾听,要帮助他们几乎是不可能的。


你好,请帮助我,如果我需要pol变量存储余额,当变量sig=1时,不改变其值,无论它持续显示多久,如果sig=1时,我需要存储当前的,请给我代码

同意

每个人都是一个聪明人。

我很抱歉......问题是,我已经害怕这个任务两天了......

我不会请求帮助。