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

 

告诉我,如果我不是一个编程专家。

这个东西在打开一个订单时是否会查看历史记录?

extern int dDay;
//extern bool fl;

int init()
  {
      return(0);
  }

int deinit()
  {
      return(0);
  }

int start()
  {
      double MA2,MA3;
      double Fr,Fr1;
      double SAR;
      double prof;
      int total,cnt;
      
      MA2 = iMA(NULL,0,2,0,MODE_SMA,PRICE_CLOSE,0);
      MA3 = iMA(NULL,0,5,0,MODE_SMA,PRICE_CLOSE,0);
      Fr = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,0);
      Fr1 = iForce(NULL,0,2,MODE_SMA,PRICE_CLOSE,1);
      
      //SAR = iSAR(NULL,0,0.2,2,0);
      
      if((Hour() == 22) && (OrdersTotal() == 0) && (dDay != Day()))
      {
         //if(Open[0] > MA) // BUY
         if(MA3 < MA2)
         //if(SAR < Open[0])
         {
            OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
            //fl = true;
         }
         //if(Open[0] < MA) // SELL
         if(MA3 > MA2)
         //if(SAR > Open[0])
         {
            OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
            //fl = true;
         }
      
         dDay = Day();
      }
      
      /*if((Hour() == 8) && (OrdersTotal() == 1) && fl)
      {
         fl = false;
         if(OrdersTotal() != 0)
         {
            total = OrdersTotal();
            for(cnt=0;cnt<total;cnt++)
            {  
               OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);         
               prof = OrderProfit() / 10;
               if(prof <= -10)
               {
                  if(OrderType()==OP_BUY)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
                     OrderSend(Symbol(),OP_SELL,1,Bid,3,0,Bid-0.0010,"",1,0,Red);
                  }
                  if(OrderType()==OP_SELL)
                  {
                     OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
                     OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Ask+0.0010,"",2,0,Blue);
                  }
               }
            }
         }
      }*/
  
      
      if(OrdersTotal() != 0)
      {
         total = OrdersTotal();
         for(cnt=0;cnt<total;cnt++)
         {  
            OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);                     
            prof = OrderProfit() / 10;
            if(prof >= 4)
            {
               if(OrderType()==OP_BUY)
               {
                  OrderClose(OrderTicket(), OrderLots(), Bid, 3, Yellow);   
               }
               if(OrderType()==OP_SELL)
               {
                  OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
               }
            }
         }
      }

      return(0);
  }
 
baykanur:

告诉我,如果我不擅长编程,这算什么?

在打开订单时,是否会查看历史记录?



1)插入代码 时使用SRC标签

2)删除注释出来的内容。

3) 告诉我们你想看到什么,有什么不一致的地方

 
ilunga:

1)插入代码时使用SRC标签

2) 删除被注释的内容

3) 告诉我你想看到什么,有什么不一致的地方

已插入src

什么是评论出来的?

测试器中的盈利交易数量存在差异,这就是为什么我问道

 

我想学习如何根据单独窗口中的指标值在图表上绘制水平线。例如,如果MACD从下到上穿过0级,就 根据发生交叉的条形低点在图表上画一条线。当MACD从顶部向下交叉时,高点上的线将被相应地画出来。我写了一些东西,它的编译没有错误,但什么也没有发生。你能帮助我吗?

#property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_color1  Blue

double    Buffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Buffer);

   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   double level;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++)
      
      double    macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
      double    macd1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1);
      
      if (macd > 0 && macd1 < 0)
      {
      level = iLow("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iLow[i]?
      Buffer[i]=level;
      }
      else if (macd < 0 && macd1 > 0)
      {
      level = iHigh("EURUSD",PERIOD_M1,i); //Почему выскакивает ощибка если написать просто iHigh[i]?
      Buffer[i]=level;
      }
   return(0);
  }
 
baykanur:

已插入src

我不知道有什么评论

在测试器中,盈利交易的数量存在差异

匹配中总是有两个对象被比较。

测试员与同一时期的演示不一致吗?例如,因为测试器中的传播是不同的

 
Ichimo:

我想学习如何根据单独窗口中的指标值在图表上绘制水平线。例如,如果MACD从下到上穿过0级,就会根据发生交叉的条形低点在图表上画一条线。当MACD从顶部向下交叉时,高点上的线将被相应地画出来。我写了一些东西,它的编译没有错误,但什么也没有发生。请帮助。

线路至少是2点;)

Buffer[i]=level;

这是一个点,相邻的可能是零,这就是为什么线无处可画的原因

 //Почему выскакивает ощибка если написать просто iLow[i]?
因为Low[i]的开头没有 "i"。
 
Vinin:

那个篮子在哪里?
我可以引导你到你的篮子...:)
 
有没有办法把两个价格之间的距离分成3-4个部分,不仅仅是划分,还要找出所产生的每个部分的价格?
 
sss2019:
有没有办法把两个价格之间的距离分成3-4个部分,不仅仅是划分,还要找出所产生的每个部分的价格?
double price1;

double price2;

...

if (price1 > price2)
{
   double delta = price1 - price2;
   double level1 = price2 + delta*0.25;
   double level2 = price2 + delta*0.5;
   double level3 = price2 + delta*0.75;
}
=)
 
ilunga:

一条线至少是2个点;)

这是一个点,相邻的可能是零,因此没有地方可以画线

因为Low[i]的开头没有 "i"。



因此,我需要创建一个前一个点,或者画一个箭头而不是线。 谢谢,我将继续绞尽脑汁。
原因: