[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 415

 
bool Val_max=true;
bool Cl_dn=true;
bool Val_min=true;
//лучше определиться где правда, а где ложь, ладн, будем считать все семафоры открытыми

void start()
  {
      if(Val_max==true)
         if(условие_1)
         {
           Alert("Значение инд. >= 1.0000 (исп. 1-е усл.)");
           Val_max=false;//считаем что первое условие выполнилось                                       //заглушка
         }
      if(Cl_dn==true && Val_max==false) //тут тоже более менее нормуль, второе условие проверяется если отметилось первое
         if(условие_2)
         {
           Alert("1 бар закрылся падением (исп. 2-е усл.)");
           Cl_dn=false;                                         //заглушка
         }
      if(Val_min==true && Val_max==false && Cl_dn==false)//третье будет проверяться только после наступления первых двух
         if(условие_3)
         {
           Alert("Значение инд. <= 0.9980 (исп. 3-е усл.)");
           Val_min=false;                                       //заглушка
         }
      if(Val_max!=true && Cl_dn!=true && Val_min!=true)
         {
           //здесь будет посылаться жирный ордер
           Val_max=true;
           Cl_dn=true;
           Val_min=true;      
         }   
//----
   return(0);
  }
В чем собственно проблема? лень запустить и проверить как это будет работать?
 
igid:
То есть надо одновременно запустить несколько терминалов и в каждом авторизоваться под разными логинами?

Да. У каждого терминала свой торговый счет.
 
nadya:
Скажите, пожалуйста, как разделить все ордера на две группы еще при открытии каждого так, чтобы в дальнейшей работе видеть, к той или иной группе относится каждый ордер? (MAGIC не подойдет)

При открытии ордеров той или иной группы сами определитесь - пропИсывайте в одну группу, комментарий к ордеру, в другую - нет. Далее анализируете наличияе коммента у ордера, если есть - то к первой группе, если коммента нет - то ко второй.
 

Друзья, пытался написать примитивного эксперта, но получилась коряга!

Моей логикой до этого не дойти никак...

Если кто может помочь, параметры такие:

Последовательность действий:

1.Проверка наличия открытых и отложенных ордеров.

(если есть хоть один отложенный или открытый- бездействие;

если ордеров 0- шаг 2).

2. Открытие ордера BuyStop в 50 пунктах от текущей цены, SL=50, TP=100 на время Time= 100 минут.

3. В начало.

Изменяемые параметры:

Lots

TakeProfit

StopLoss

TralingStop

Price (количество пунктов в расстоянии от текущей цены, на котором будет открыт отложенный ордер)

Time (время истечения отложенного ордера)

Помогите, пожалуйста!

Заранее благодарю!

 
OlegArH:

Друзья, пытался написать примитивного эксперта, но получилась коряга!

Моей логикой до этого не дойти никак...

Если кто может помочь, параметры такие:

Последовательность действий:

1.Проверка наличия открытых и отложенных ордеров.

(если есть хоть один отложенный или открытый- бездействие;

если ордеров 0- шаг 2).

2. Открытие ордера BuyStop в 50 пунктах от текущей цены, SL=50, TP=100 на время Time= 100 минут.

3. В начало.

Изменяемые параметры:

Lots

TakeProfit

StopLoss

TralingStop

Price (количество пунктов в расстоянии от текущей цены, на котором будет открыт отложенный ордер)

Time (время истечения отложенного ордера)

Помогите, пожалуйста!

Заранее благодарю!

Этот раздел учебника читали?
 
Roman.:
Этот раздел учебника читали?

Ага!

Но, будучи далёким от программирования, только поимел несчетное множество вопросов и непоняток.

Это убило весь энтузиазм... (

 
OlegArH:

Ага!

Но, будучи далёким от программирования, только поимел несчетное множество вопросов и непоняток.

Это убило весь энтузиазм... (


В таком случае обращайтесь в соответствующие Вашему вопросу тематические ветви форума, напимер, сюда пишите...
 

Подскажите плиз, как округлить rsi до целого числа, и как можно изменить период rsi (по умолчанию 14)?

Спасибо

//+------------------------------------------------------------------+
//|                                                  RSI_to_File.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/"

#property show_inputs
string SymbolsArray[11]={"","USDCHF","GBPUSD","EURUSD","USDJPY","CHFJPY","EURGBP","EURCHF","EURJPY","GBPJPY","GBPCHF"};

//+------------------------------------------------------------------+
//| string SymbolByNumber                                   |
//+------------------------------------------------------------------+
string GetSymbolString(int Number)
  {
//----
   string res="";
   res=SymbolsArray[Number];   
//----
   return(res);
  }

//+------------------------------------------------------------------+
//| возвращает период                                                |
//+------------------------------------------------------------------+
int PeriodNumber(int number)
   {
   int per_min;
   switch (number)
      {
     
      case 5: per_min=PERIOD_H4;break;
      default: per_min=PERIOD_D1;break;
      }
   return(per_min);   
   }

//+------------------------------------------------------------------+
//|   выводит в файл котировки + значения индикатора                 |
//+------------------------------------------------------------------+
void RSI_output(string SymbolName,int PeriodMinutes)
   {
   int size=iBars(SymbolName,PeriodMinutes);
//----
   if (size==0) return;
   int handle=FileOpen(SymbolName+PeriodMinutes+"_RSI.csv",FILE_WRITE|FILE_CSV);
   if (handle<0) return;
   FileWrite(handle,"Time;RSI");
   for (int i=size-1;i>=0;i--)
      {
      FileWrite(handle,TimeToStr(iTime(SymbolName,PeriodMinutes,i))
         ,iCustom(SymbolName,PeriodMinutes,"RSI",0,i));
      }
   FileClose(handle);      
//----
   return;
   }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  int SymbolCounter,PeriodCounter; 
//----
   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
      {
      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
         {
         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");
         RSI_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Добрый день, у меня возникла странная ошибка 4023 при вызове функции из самонаписанной dll, причем одна функция из dll нормально вызывается, другая нет, что это за ошибка, не смог найти на нее описание, помогите пожалуйста.
 
splxgf:
ищите #property indicator_color1 Red


в коде нет его (моем). или его надо прописывать? для всех 6-и? Если надо, код выложу.

p.s. Скорей всего я не правильно выразился. Эксперт прописан с испльзованием стандартного индикатора MA (6 переменных- соответсвенно 6 линий), без привлечения пользовательских. И после теста эксперта вызывая график я вижу 6 красных линий. Получается мне придётся создавать пользовательский? Или есть строчка для присваивания цвета линии стандартного индикатора?

Причина обращения: