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

 

Добрый вечер.

В кодо-писании я "карась" :) Вот собираю советник на индикаторе Фибоначчи. Пока на стратегию необрашаите внимание. Загвозтка в следуюшем - 7 уровння Фибоначчи, как зделать чтоби на каждом пересечонном уровне выставлялись только 2 разних отложных ордера и не более. 

Был би презнателен за какую либо подсказку.

За ранее извеняюсь за мои неловкий Руский. 

Файлы:
 
valenok2003:


Используйте кратность периодов.

например для H1

extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;

если вы хотите получить те же значения для H3

то задавайте на H1

extern int FastEMA=36;
extern int SlowEMA=78;
extern int SignalSMA=27;  

работает не для всех индюков, 

в приложении пример реализации стохастика для произвольного ТФ
 

Ваш код навел на мысль, что можно писать любое количество минут во втором параметре любого индикатор. Например iRSI(NULL, 300, .....) - для таймфрейма H5. Это так?
 
Pacman:

Всем доброго вечера.

Попытался написать индикатор (это мой первый индикатор) который должен отображать минимальное и максимальное значение цены среди последних n баров.

Не  могу понять в чем у меня ошибка(

Помогите пожалуйста разобраться! 

Отсчет начинается с 1 бара. 

 


 

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red

extern int Quant_Bars = 5; //количество баров
int i;                     //номер бара
int Minimum;               //минимум за n баров
int Maximum;               //максимум за n баров

//--- buffers
double Line_1[];     //объявление массивов под..
double Line_2[];     //..буферы индикаторов

int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(0,Line_1);                    //назнач. массива буферу
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(1,Line_2);                    //назнач. массива буферу
//----
   return;                                      
  }

int start()
  {                        
   double Minimum = Bid;      //мин. цена
   double Maximum = Bid;      //макс. цена
   
   for(i=1; i<=Quant_Bars; i++)
   {
    if(Low[i]<Minimum)        //если меньше известного..
       Minimum = Low[i];      //..то оно и будет минимальным
      
    if(High[i]>Maximum)       //если большн известного..
       Maximum = High[i];     //..то оно и будет максимальным
    }

   //
   // Здесь как минимум нужен цикл, лучше два разных - для мин и макс ..............
   //
    Line_1[i] = Minimum;      //отобразить линию минимума
    Line_2[i] = Maximum;      //отобразить линию максимума
   
   return;
  }
 

Доброго вечера! Скажите, будет ли это достаточно, что б поставить одну-две стрелки?

bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;// if( CCI_50S>CCI_50&& )napravlenieCCI=false;
  if(napravlenieCCI){  ObjectCreate( "name", OBJ_ARROW, 0, TimeCurrent(),Ask);}
 

Здравствуйте.

Умные люди, подскажите простую вещь. у меня одновременно работают три эксперта по разным валютным парам. Если один из них хочет совершить сделку, как проверить, если ли по данной валютной паре уже открытые сделки? когда работает только один эксперт, все просто. OrdersTotal(). Когда их много, как быть? 

 
Dozol:

Здравствуйте.

Умные люди, подскажите простую вещь. у меня одновременно работают три эксперта по разным валютным парам. Если один из них хочет совершить сделку, как проверить, если ли по данной валютной паре уже открытые сделки? когда работает только один эксперт, все просто. OrdersTotal(). Когда их много, как быть? 

Взрослый вопрос! Про OrderMagicNumber() что-нибудь слышали?
 
Pacman:

Всем доброго вечера.

Попытался написать индикатор (это мой первый индикатор) который должен отображать минимальное и максимальное значение цены среди последних n баров.

Не  могу понять в чем у меня ошибка(

Помогите пожалуйста разобраться! 

Отсчет начинается с 1 бара. 

 


Пробуйте:

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 DeepSkyBlue

extern int Quant_Bars = 5; //количество баров

double Line_1[];     //объявление массивов под..
double Line_2[];     //..буферы индикаторов

int init()
  {//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(0,Line_1);                    //назнач. массива буферу
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(1,Line_2);                    //назнач. массива буферу
    return(0);}

int start()
  {double Minimum=1000005; //минимум за n баров
   double  Maximum;      //максимум за n баров
   int z,k; 
  for(z=1;z<Quant_Bars;z++)
   {if(Low[z]<Minimum)    //если меньше известного..
       Minimum=Low[z];    //..то оно и будет минимальным
    if(High[z]>Maximum)    //если большн известного..
       Maximum=High[z];    //..то оно и будет максимальным
    }
for(k=1;k<Quant_Bars;k++)     
  {Line_1[k]=Minimum;    //отобразить линию минимума
   Line_2[k]=Maximum;    //отобразить линию максимума
  }return(0);}
 

TarasBY:
Взрослый вопрос! Про OrderMagicNumber() что-нибудь слышали?

 

Слышал. Не понимаю, как он в решении моей задачи мне поможет. 

Переформулирую вопрос. как определить, есть ли по определенной валютной паре открытые сделки, или нет?  

 
Dozol:
Прежде, чем искать "свой" (открытый конкретным советником) ордер, при его открытии ему нужно присвоить уникальный МАГИК. А потом по Магику и решать Ваш вопрос.
 
TarasBY:
Прежде, чем искать "свой" (открытый конкретным советником) ордер, при его открытии ему нужно присвоить уникальный МАГИК. А потом по Магику и решать Ваш вопрос.


Можно воспользоваться также и командой OrderSymbol()

примерно так 

 

int count_orders=0;

string Symbole=eurusd;

  for (int i = OrdersTotal() - 1; i >= 0; i--)

    {

        OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

        if ( OrderSymbol()==Symbole) count_orders=count_orders+1;

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