[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 387

 
biragr:

谢谢你的关注,但我不明白你的问题。你可以设置任何日期的线,当图表到达它时,EA将触发?或者是我不明白的地方,如果你不介意解释一下。
好吧,你在日线图上设置了线,如果是在手表上呢?开单时间 是由线设置还是严格设置?你需要用线设置一个月的时间表,还是按照我的链接设置一个专家顾问就够了?
 
kolyango:

请帮助我!https://www.mql5.com/ru/code/10067 指标需要被转换成一个简单的工作EA(作为一个例子)。行动的原则。

在EA将被抛出的货币对上,只要数值等于0.9570,就开出一个市场订单,卖出0.1手的大号(以便不同窗口的EA不会混淆订单),Stop-Loss 100p, Take-Profit 200p。

专业人士,我们不能没有你们!"。



帮助一个初学者!
 

kolyango:

在EA将被抛出的货币对上,只要数值等于0.9570,就开出一个市场订单,卖出0.1手,用一个主要的数字(以便不同窗口的EA不会混淆订单),止损100p,获利200p。

对一个初学者的帮助!
写一个一次性的EA有什么意义呢?放置一个挂单,它就会按照你的要求工作。并在主力上设置了EA,因为暂停会有零主力。
 
Reshetov:
写一个一次性的EA有什么意义呢?暂停一下,它就会按照你想要的方式自行触发。并为主力配置EA,因为暂停会有零主力。

我需要弄清楚如何把这个变成一个指标...
 

问题是什么?问题是,订单并不总是在过线时打开,也就是说,有时会打开,有时不会打开......虽然它的工作原理相同...

//+------------------------------------------------------------------+
//|                                                      Вайкофф.mq4 |
//|                                                   Sergey Kodolov |
//|                                              84232676421@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Kodolov"
#property link      "84232676421@mail.ru"



int total,sum,sumr;  
datetime TimeBarH, TimeBarL;

int Crossed (double nach, double kon, double cenaniz, double cenaverh)
{
   static int last_dir = 0;
   static int cur_dir = 0;
   
   if(nach<cenaverh && kon>cenaverh)cur_dir=1;
   if(nach>cenaniz && kon<cenaniz)cur_dir=2;
   
   if(cur_dir != last_dir)
   {
      last_dir=cur_dir;
      return(last_dir);
   }
   else
      return(0);
}


  
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }

  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
                     
bool NewBar = New(); //работаем только с нового бара

int volot = volotilnost(NewBar); //определяем волотильность
Hfr(NewBar,volot); //определяем фрактал верхний
Lfr(NewBar,volot); //определяем фрактал нижний

      double BuyLine, SellLine;
   
      BuyLine = ObjectGet("upline",OBJPROP_PRICE1);
      SellLine = ObjectGet("downline",OBJPROP_PRICE1);

int isCrossed = Crossed(Open[0],Bid,SellLine,BuyLine); //говорит о пересечении баром линии
OrderOpenFunction(isCrossed);



//----
   return(0);
  }
//+------------------------------------------------------------------+


bool New()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   //Print("lastbar = ",lastbar," curbar = ",curbar);
   if(lastbar!=curbar)
   {
      lastbar = curbar;
      //Print("ypa");
      return(true);
   }
   else
      return(false);
}

int volotilnost (bool NewBar)
{
   if(NewBar == true)
   {
      for(int i=0;i<=kolbar;i++)
      {
         sum = sum + MathAbs(High[i]-Low[i])*1000;
         //Print(sum);
      }
      sumr = sum/kolbar;
      Print(sumr);
      return(sumr);
   }   
}

void Hfr(bool NewBar, int volot)
{
   if(NewBar == true)
   {
      if(volot > kolbarv)
      {
         if(iHigh(Symbol(),TF,5)<iHigh(Symbol(),TF,4))
         {
            if(iHigh(Symbol(),TF,4)<iHigh(Symbol(),TF,3))
            {
               if(iHigh(Symbol(),TF,2)<iHigh(Symbol(),TF,3))
               {
                  if(iHigh(Symbol(),TF,1)<iHigh(Symbol(),TF,2))
                  {
                     ObjectDelete("upline");
                     ObjectCreate("upline",OBJ_HLINE,0,0,(iHigh(Symbol(),TF,3)));
                     TimeBarH = iTime(Symbol(),TF,3);
                  }
               }
            }
         }
      }   
   }   
}
         

void Lfr(bool NewBar, int volot)
{
   if(NewBar == true)
   {
      if(volot > kolbarv)
      {
         if(iLow(Symbol(),TF,5)>iLow(Symbol(),TF,4))
         {
            if(iLow(Symbol(),TF,4)>iLow(Symbol(),TF,3))
            {
               if(iLow(Symbol(),TF,2)>iLow(Symbol(),TF,3))
               {
                  if(iLow(Symbol(),TF,1)>iLow(Symbol(),TF,2))
                  {
                     ObjectDelete("downline");
                     ObjectCreate("downline",OBJ_HLINE,0,0,(iLow(Symbol(),TF,3)));
                     TimeBarL = iTime(Symbol(),TF,3);
                  }
               }
            }
         }
      }   
   }   
}

void OrderOpenFunction(int isCrossed)
{
   total = OrdersTotal();
   if(total<1)
   {
      if(isCrossed == 1)
      {
         OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"Покупка",Magic,0,Green);
      }
      if(isCrossed == 2)
      {
         OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продажа",Magic,0,Red);
      }
   }   
}
我认为错误在isCrossed中,但我在那里找不到......我删除了部分代码(我把一些数据保存到数组中),因为它使代码过载,但如果我需要它,我也会很高兴与你分享。
 
晚上好!我下了一个待定的限价单,没有止损,错误130 !!!!会是什么呢?还是我又搞砸了?请给我建议!
 

大家好。

你能告诉我如何描述随机指数的主线和信号线 的交叉吗?

 

在我看来,是这样的

F=iStochastic( Symbol(), 0, 5, 3, 3, MODE_SMA, 1,MODE_MAIN , 0) ;
   SIGNAL=iStochastic( Symbol(), 0, 5, 3, 3, MODE_SMA, 1,MODE_SIGNAL , 0) ;
   if (F==SIGNAL) {Урра!!!!; }
 

还有一个问题,为什么程序说物体存在,而实际上它并不存在(我只是看了看显示器,没有清楚地看到物体)。

void DrawLines()
{
   ObjectCreate("line1",OBJ_TREND,0,ArrayH[1],iHigh(Symbol(),TF,iBarShift(Symbol(),TF,ArrayH[1])),ArrayH[2],iHigh(Symbol(),TF,iBarShift(Symbol(),TF,ArrayH[2])));
   Print(GetLastError());
}

iBarShift(Symbol(),TF,ArrayH[1])- 给出了酒吧的编号,我都是通过Print()检查的。但GetLastError 给我的错误是4200 - 我不明白什么是什么=)

 
kolyango:

我需要弄清楚如何从一个指标中制作这个...

没有办法摆脱指标的束缚