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

 
起初的描述有点错误......如果它在1/3处关闭,就应该画出来。
 
伙计们,更新出来了吗?
 
我有一个关于在20级和80级有随机指数 的指标问题。或者MACD的水平为0。
,所以问题是,当指标值低于20或高于80时,主线和信号线如何取值。或者在这些水平后面交叉。指标值,我想我已经得到了,但随后如何处理它们并不清楚。

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0)

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0);
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0) 。
 
denis77515:
各位程序员,请解释pliz随机指标有20、80级。或者MACD的水平为0。
我想我已经得到了指标值,但我不知道该如何处理它。

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,sling,MODE_SMA,0,MODE_MAIN,0)。
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,sling,MODE_SMA,0,MODE_SIGNAL,0)。

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0) 。
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0)


学习指南

尽管可能已经太晚了,但我们今天还是要更新。

教程中的例子

//--------------------------------------------------------------------
// grafobjects.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 1 --
   int Sit;
   double MACD_M_0,MACD_M_1,           // Главная линия, 0 и 1 бар
   MACD_S_0,MACD_S_1;                  // Сигнальная линия, 0 и 1 бар
   string Text[4];                     // Объявление строков. массива
   color  Color[4];                    // Объявление массива цветов

   Text[0]= "Открытие Buy";            // Текст для различных ситуаций
   Text[1]= "Открытие Sell";
   Text[2]= "Удерживаем Buy";
   Text[3]= "Удерживаем Sell";

   Color[0]= DeepSkyBlue;              // Цвет объекта ..
   Color[1]= LightPink;                // .. для различных ситуаций
   Color[2]= Yellow;
   Color[3]= Yellow;
//--------------------------------------------------------------- 2 --
   ObjectCreate("Label_Obj_MACD", OBJ_LABEL, 0, 0, 0);// Создание объ.
   ObjectSet("Label_Obj_MACD", OBJPROP_CORNER, 1);    // Привязка угол
   ObjectSet("Label_Obj_MACD", OBJPROP_XDISTANCE, 10);// Координата Х
   ObjectSet("Label_Obj_MACD", OBJPROP_YDISTANCE, 15);// Координата Y
//--------------------------------------------------------------- 3 --
   MACD_M_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);  // 0 бар
   MACD_S_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);// 0 бар
   MACD_M_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);  // 1 бар
   MACD_S_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------- 4 --
   // Анализ ситуации 
   if(MACD_M_1<MACD_S_1 && MACD_M_0>=MACD_S_0)// Персеч. снизу вверх
      Sit=0;
   if(MACD_M_1>MACD_S_1 && MACD_M_0<=MACD_S_0)// Персеч. сверху вниз
      Sit=1;
   if(MACD_M_1>MACD_S_1 && MACD_M_0>MACD_S_0) // Главная выше сигн.
      Sit=2;
   if(MACD_M_1<MACD_S_1 && MACD_M_0<MACD_S_0) // Главная ниже сигн.
      Sit=3;
//--------------------------------------------------------------- 5 --
   // Изменение свойств объекта
   ObjectSetText("Label_Obj_MACD",Text[Sit],10,"Arial",Color[Sit]);
//--------------------------------------------------------------- 6 --
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 7 --
int deinit()                           // Спец. функция deinit
   {
   ObjectDelete("Label_Obj_MACD");     // Удаление объекта
   return;                             // Выход из deinit()
   }
//--------------------------------------------------------------- 8 --
 
double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда 
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда 
{
return(2/3);
}

if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}

}

 if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
   {
 SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
这条线 应该 在价格在底部收盘的柱子上,也就是1/3柱子。
 

你好!我正准备重新安装Windows,但当我把EA文件夹移到硬盘上时,我最近写的EA就不见了!我不知道该怎么办?有什么建议吗?

*我不能把代码保存在一个文件中,然后重新创建它们,因为它们有很多,我不想因为可能的人为因素而丢失数据 :)

 
日安!请帮助!!写专家顾问的程序员消失了......我不得不自己完成它......我不得不自己重写,而且我还有一个功能需要实现。我的专家顾问正在对支撑位和阻力位的突破+菲波位作为第二个信号,分别在菲波位工作。结果,我得到了一个信号,但由于一些限制或没有足够的点数来设置最小止盈它没有发挥作用。 请帮助,建议或抛出链接到顾问....我 在寻找交易的限制条件。 买入时,价格必须从下往上突破,而卖出时则从上往下。事先非常感谢!!!!!
 

伙计们,请帮忙,有一个函数可以返回最后一个未平仓订单(尚未平仓)的手数。你可以修改它以返回下一个到最后一个未平仓订单的手数(也未平仓)吗?只要不使用数组就可以了...

double FindLastLots (int otype)
{
  double oldopenprice,oldlots;
  int oldticket;
  
  ticket = 0;
  
  for (int i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) 
    {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
      {
         oldticket = OrderTicket();
         if (oldticket>ticket)
         {
            oldlots = OrderLots();
            ticket = oldticket; 
         } 
      }  
    }
  }
  return (oldlots);
}
 
Trader7777:

伙计们,请帮忙,有一个函数可以返回最后一个未平仓订单(尚未平仓)的手数。你可以修改它以返回下一个到最后一个未平仓订单的手数(也未平仓)吗?只做不使用数组...

你这里也没有数组。该代码不是很可靠。你要找的是开放订单列表中的最后一个。IMHO,绑定到这一点并不十分可靠。找到最后一个未平仓订单的最可靠的方法是根据它的开仓时间(它是所有订单中最低的)。
 
有什么棘手的方法可以用热键调用趋势线吗?