[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1081

 
dzhini:

有些东西似乎没有发挥作用。请帮助。

测试的思路如下:如果烛光大于某一数值,则禁止进一步交易。


我无法理解你想达到什么目的。在你删除的最后一个帖子之后,我做了一个脚本,显示关于蜡烛图大小的所有数据和要检查的参数。一切正常。

在我看来,只有奇怪的逻辑--如果蜡烛是看涨的,你就禁止买入,如果是看跌的,你就禁止卖出......。但这取决于你自己的逻辑...

//+------------------------------------------------------------------+
//|                                        Проверка высоты свечи.mq4 |
//|                             Copyright © 2010, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
bool BuyOne =false;
bool SellOne=false;
int  CandleVolume=10;

int start()
  {
//----
   Alert ("Проверка дала результат = ",CheckVolume());
//----
   return(0);
  }
//+------------------------------------------------------------------+
int CheckVolume()                               // функция проверки высоты свечи
{
   double volume=High[1]-Low[1];                // проверка высоты свечи
   double signCandle=Open[1]-Close[1];          // проверка направления (положительное или отрицательное значение)
   double CVol=CandleVolume*Point;
   int    Res=0;

   BuyOne =true;
   SellOne=true;
   if (NormalizeDouble(CVol-volume,Digits)>=0) Res=1; // если свеча меньше, то всё ОК
   else {                                       // если свеча больше, то прверяем её направление
      if (signCandle<0) BuyOne =false;          // если значение меньше ноля (т.е. закрытие больше открытия), то блокируем покупки
      if (signCandle>0) SellOne=false;          // в противном случае блокируем продажи
      Res=-1;                                   // возвращаем отказ по сделке
      }
   Comment ("\n",
            "High[1] = ",High[1],"\n",
            "Low[1] = ",Low[1],"\n",
            "Высота свечи (High[1]-Low[1]) = ",volume,"\n",
            "Проверяемый размер свечи = ",CVol,"\n",
            "Open[1] = ",Open[1],"\n",
            "Close[1] = ",Close[1],"\n",
            "Open[1]-Close[1] = ",Open[1]-Close[1],"\n",
            "Направление свечи = ",signCandle,"\n",
            "BuyOne = ",BuyOne,"\n",
            "SellOne = ",SellOne,"\n"
            
            );
   return(Res);
}
 

如何实现这样一段代码。

我们检查零条(还没有完全形成),直到它是第一条(已经完全形成)。如果零条现在是第一条(而不是0,它有一个1)--那么我们继续...

亲,帮我把这部分的代码做出来!!!

 
帮助找到一个从历史中获取信息的顾问 ....
 
kolyango:

如何实现这样一段代码。

我们检查零条(还没有完全形成),直到它是第一条(已经完全形成)。如果零条现在是第一条(而不是0,它有一个1)--那么我们继续...

亲,帮我把这部分的代码做出来!!!

马上检查第一个。为什么在等待它成为第一个的时候检查零?
 
itum:
帮助找到一个从历史中获取信息的顾问 ....
什么样的信息?关于星星的位置?
 
artmedia70:
什么样的信息?关于星星的位置?
在这个论坛上已经不止一次讨论过关于一些顾问进入历史并获取信息(报价等)的问题,所以我正在寻找这样的东西!"。
 
itum:
在这个论坛上已经不止一次讨论过关于专家顾问的问题,它可以进入历史并获取信息(报价等),所以我正在寻找这样的东西 !
也许决定你想从历史中获得什么信息并编写代码会更好?
 
artmedia70:
决定你想从故事中获得什么信息并编写代码不是更好吗?
如果你已经有了类似的东西,为什么还要写代码?粗略的说,我需要一个只在测试器上显示非常好的结果的EA .....!!
 
artmedia70:
直接检查第一个。 ,为什么要检查零点,等待它成为第一?

这将确保不是每个tick都 会进一步执行所有的代码,而只是在零条的时候先执行...
 
kolyango:

这将确保不是每个tick都会进一步执行所有的代码,而只是在零条的时候先执行...
bool Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   bool New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }
原因: