[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 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:
Может лучше сразу определиться какую информацию из истории хотите получить и написать код?
Зачем писать код еле подобное уже есть. Грубо говоря мне нужен советник который бы очень хорошо показывал результаты только на тестере ..... !!
 
artmedia70:
Сразу проверяйте первый. Зачем проверять нулевой в ожидании, когда он первым станет?

Это даст, что не при каждом тике будет исполняться весь код далее, а только когда нулевой бар станет первым...
 
kolyango:

Это даст, что не при каждом тике будет исполняться весь код далее, а только когда нулевой бар станет первым...
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;                             // Поймался новый бар
     }
  }
Причина обращения: