Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 913

[Deleted]  

Вопрос решил. Кому надо пользуйтесь.

Как записывать данные в динамический массив.

//---------------------
extern int MaxDrawTicks=100;
extern int Num_Aver_of_Ticks=5;  
double     xBuffer_Time []; // Массив значений   динамический
                            // В котором индекс - номер тика, значение - это бид 
int SIZE=0;                 // Вспомогательная переменная для массива                                  
int tickCounter, tickCounter_Current; 
//+------------------------------------------------------------------+
int init()
  {   
//--- устанавливаем размер динамического массива
   if(ArrayResize(xBuffer_Time,2000000)<0) {Alert(" Ошибка в изменении размера массива времени поступления тиков "); return(false);}
//--- установим индексацию для буфера как в таймсерии для динамического массива
  // ArraySetAsSeries(xBuffer_Time,true);    
//---   Возвращает количество элементов указанного массива. 
   int S=ArraySize(xBuffer_Time);
   if (S>=0) Alert("Размер массива: ",S);
   else Print("Ошибка. Массив не создан ",S);        
   ArrayInitialize(xBuffer_Time, 0);
   return(0);
  }  
//+------------------------------------------------------------------+
int start()
  {  
   //ArrayResize(ValueArr,size);
   //ValueArr[size-1] = GetValue();
   //size++; 
 //----------------------------------------  
   ArrayResize(xBuffer_Time,SIZE);
   xBuffer_Time[SIZE-1] = Bid; //NormalizeDouble((iTime (_Symbol,1,0)-_start), 2); 
  
   if ( SIZE >= 0 && ArraySize(xBuffer_Time) < 2147483647)
      {
      Alert (" Значение xBuffer_Time[SIZE-1] = ", DoubleToStr(xBuffer_Time[SIZE-1],Digits) );
      Alert (" Значение SIZE = ", DoubleToStr(SIZE,2) );  
      } 
    SIZE ++;   
 //---------------------------------------      
//------------
   return(0);
  }
 

Здравствуйте, торгую на Ренко графике "RenkoLiveChart_v4.13.mq4"

Не могу запустить или открыть сделку через советник на оффлайн графике. 

 
Top2n:

Здравствуйте, торгую на Ренко графике "RenkoLiveChart_v4.13.mq4"

Не могу запустить или открыть сделку через советник на оффлайн графике. 

 

На оффлайн графиках надо эмулировать тики, терминал на них сигнал прихода нового тика не отсылает.

Например вот как в этом скрипте:

#include <WinUser32.mqh>

#import "user32.dll"


//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
    int whdl=WindowHandle (Symbol(), Period());    
        while(!IsStopped())
         {
                PostMessageW (whdl, WM_COMMAND, 33324, 0);
                Sleep(100);
         }
        return(0);
}
 
Всем спасибо - разобрался в чём дело.
 
_Roman:

Вопрос решил. Кому надо пользуйтесь.

Как записывать данные в динамический массив.


Спасибо! Для меня это тёмный лес, лесомассив, лесоповал и т.п. ;)
 
evillive:

На оффлайн графиках надо эмулировать тики, терминал на них сигнал прихода нового тика не отсылает.

Например вот как в этом скрипте:

Есть еще предложения?

Подключаю к оффлайн графику скрипт, терминал виснет. Может можно монтировать код в робота, тогда что делать с #import "user32.dll"

[Deleted]  

Здравствуйте. Помогите пожалуйста. Хотел написать советник: Если открытых сделок нет и цена открытия первого бара меньше цены закрытия первого бара и цена открытия второго бара меньше цены закрытия второго бара, то открываем сделку...     Но советник в тестере начинает открывать сделки одна за другой друг за другом, не могу понять в чем дело. СПС.


int init;

int start()
{

int bar1;
int bar2;
int   stoploss=100; 
int   takeprofit=100;
int       slipage=2;
int total;
//-------------------------------------------------------------------+
  
  if ( OrdersTotal()<1 &&  Open[bar1]>Close[bar1] && Open[bar2]>Close[bar2])
    
     {OrderSend("EURUSD",OP_BUY,0.1,Ask,slipage,Ask-stoploss*Point,Ask+takeprofit*Point,"",123,0,Red);}
     
    //-------------------------------------------------------------------+  
     
                   
 
 return;}
 
rylay:

Здравствуйте. Помогите пожалуйста. Хотел написать советник: Если открытых сделок нет и цена открытия первого бара меньше цены закрытия первого бара и цена открытия второго бара меньше цены закрытия второго бара, то открываем сделку...     Но советник в тестере начинает открывать сделки одна за другой друг за другом, не могу понять в чем дело. СПС.


int init;

int start()
{

int bar1;
int bar2;
int   stoploss=100; 
int   takeprofit=100;
int       slipage=2;
int total,ticket;

//-------------------------------------------------------------------+
  
  if ( OrdersTotal()<1 &&  Open[bar1]>Close[bar1] && Open[bar2]>Close[bar2])
      if(V1()==true) 
     {
       ticket = OrderSend("EURUSD",OP_BUY,0.1,Ask,slipage,Ask-stoploss*Point,Ask+takeprofit*Point,"",123,0,Red);
      }
     
    //-------------------------------------------------------------------+                    
 return;}
//+------------------------------------------------------------------+
bool V1(){
  int      i, k=OrdersTotal();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if (OrderType()==OP_BUY) {
      return(false);
   }
  }    
 }
 return(true); 
}

bool V2(){
  int      i, k=OrdersTotal();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if(OrderType()==OP_SELL) {
      return(false);
   }
  }
 }
 return(true); 
}
[Deleted]  
Top2n:

Спасибо большое. Все работает. Буду разбираться, что вы написали..
 
Top2n:

Есть еще предложения?

Подключаю к оффлайн графику скрипт, терминал виснет. Может можно монтировать код в робота, тогда что делать с #import "user32.dll"

Скрипт был как пример, никто и не говорил, что надо его на оффлайн график кидать. Его обычно запускают на обычном графике и указывают ТФ оффлайн графика в строке

 int whdl=WindowHandle (Symbol(), period_renko);  

И #import "user32.dll" не нужен, он вызывается в WinUser32.mqh

И вообще, есть  индикатор "6MTH_Renko_Chart_Builder_Indi_Ver_02.mq4", который умеет эмулировать тики на создаваемом графике Ренко. Он так и работает, индикатор запускают на обычном графике, потом открывают график Ренко, который обновляется в реальном времени.