[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 371

 
ILL:
Tutti anche((((
Scusa, mi sono confuso - dovresti mettere 1 lì, allora sarà corretto. Voglio dire che il prezzo Close/Close sul grafico corrisponderà al prezzo nella funzione.
 
khorosh:
Scusa, mi sono confuso - devi mettere 1 lì, poi sarà corretto. Voglio dire che il prezzo Close/Close sul grafico corrisponderà al prezzo nella funzione.

URRÀ! È lavorare!!!!

Grazie mille!

 

Controlla!

//+------------------------------------------------------------------+
//| скорость.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double razniza=20;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double HIGH;double LOW;
int start()
{ HIGH=iHigh( NULL, PERIOD_M1, 0) ;
LOW=iLow( NULL, PERIOD_M1, 0);if (HIGH-LOW>razniza*Point || LOW-HIGH<0-razniza*Point)
Alert("Движение!!!",Symbol() );



// PERIOD_M1;PRICE_HIGH;PRICE_LOW;double High[];iHigh( NULL, PERIOD_M1, 0) ; iLow( string symbol, int timeframe, int shift) ;

//----

//----
return(0);
}
//+------------------------------------------------------------------+
 
Dimka-novitsek:

Controlla!

Whoa!
 
Grazie!!!!!
 
Zhunko:

Bene, finalmente, leggete qui. Solo nell'Expert Advisor e nelle funzioni di avvio degli script con attesa. In tutti gli altri luoghi è severamente proibito.

Il tuo codice non si adatta agli standard di MQL4. Inoltre, è stato scritto da qualche parte che il tempo di attesa nelle funzioni ininit e deinit durante una chiamata di sistema è limitato a 2,5 secondi. Poi la funzione viene terminata forzatamente.

Tutto funziona. Ecco il codice per il mini sistema in tempo reale. Fuori dalla funzione start(). Anche se ovviamente non è assolutamente principale metterlo in init().

Qui sotto c'è il codice controllato sul terminale di lavoro; l'ordine si apre e tutti gli avvisi sono scritti nella finestra del messaggio. Funzione Sleep() anche

Anche la funzione Sleep() funziona bene. Ho controllato con 30 secondi di attesa - Sleep(30000). Anche se tale attesa non è assolutamente necessaria, 50 ms sono sufficienti.

//--- input parameters
  extern int       int10 = 10; // вызов процедуры каждые 10 сек.
  extern int       int30 = 30; // вызов процедуры каждые 30 сек.
  extern int       int60 = 60; // вызов процедуры каждые 60 сек.                

  int  orders; // кол-во открытых ордеров

int init()
  {
   bool end = 1; // для завершения работы установить в false
   
   bool f_int10 = 1; // флаг разрешающий прерывание int10
   bool f_int30 = 1; // флаг разрешающий прерывание int30
   bool f_int60 = 1; // флаг разрешающий прерывание int60
   
   
   int  St_Time_10; // стартовое время отсчета 10 сек;
   int  St_Time_30; // стартовое время отсчета 30 сек;
   int  St_Time_60; // стартовое время отсчета 60 сек;
   
   St_Time_10 = TimeLocal();
   St_Time_30 = TimeLocal();
   St_Time_60 = TimeLocal();
   
   

//-----------------------------основной цикл программы--------------------------------
   while(end)
     {
       Sleep (50);
       if ((TimeLocal()==(St_Time_10 + int10))&&f_int10) {St_Time_10 = TimeLocal(); Call_int10();}
       if ((TimeLocal()==(St_Time_30 + int30))&&f_int30) {St_Time_30 = TimeLocal(); Call_int30();}
       if ((TimeLocal()==(St_Time_60 + int60))&&f_int60) {St_Time_60 = TimeLocal(); Call_int60();}
       RefreshRates();
      }  
   return(0);
  }
//-----------------------------конец основного цикла----------------------------------
//--------------------процедура вызываемая по прерыванию int10------------------------
  void Call_int10()
        {
          Alert ("Прерывание = 10 сек. Котировка >>>>", Close[0]);
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int30------------------------
  void Call_int30()
        {
        Alert ("Прерывание === 30 сек.  В резерве.");
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int60------------------------
  void Call_int60()
 {
        Alert ("Прерывание ===== 60 сек");
        if (orders!=0) return;
        if (OrdersTotal( ) == 0) {
            OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
            int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0, "from init()",123,Blue);
                              if (ticket<0)
                                       {
                                         Alert("OrderOpen BUY failed, with error #",GetLastError()); return;
                                       }      
        Alert (" Открытие ордера BUY из init() прошло успешно");                 
        orders++;              
                                  }
 }
//------------------------------------------------------------------------------------
//---------------------------эти функции не используются------------------------------
int start()  {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------
 

Domanda sugli array.

Ci sono tre array unidimensionali:

1. закрытие бара

Close[i]={Close_1,Close_2,...,Close_i};

2. открытие бара

Open[i]={Open_1,Open_2,...,Open_i};

3. его индекс

Index[i]={1, 2, ..., i};

Задача: необходимо организовать двумерный массив mas[i,2], отвечающий условиям

mas[i,0]= |Close_i-Open_i|;

mas[i,1]=i;

Как это правильно сделать?

Per favore, aiutatemi con questa domanda.
 
Ho il seguente problema, mi sono registrato ieri su MT4, ho iniziato a familiarizzare e a sperimentare su demo. Ho deciso di continuare a studiare MT4 la mattina, ma il grafico si è fermato all'ora del 6 maggio 23:57, non ho provato a riavviare il computer o reinstallare il programma, cosa fare?
 

Arthibald:
1. У меня такая проблема, вчера зарегистрировался на МТ 4, начал ознакамливатся и эксперементировать на демо. С утра решил продолжить изучать МТ4, но графики остановились на отметке времени 6 мая 23:57, ни помогает ни перезагрузка компа, не переутановка программы,...

2.... cosa fare?


1. Il mondo è crollato, il mercato è in crescita - guarda il giorno della settimana... :-)) TUTTE LE PERSONE NORMALI HANNO IL FINE SETTIMANA LIBERO... :-)))

2. riposo... :-)))

 
Roman.:


1. Il mondo è crollato, il mercato è in crescita - guarda il giorno della settimana...:-)) TUTTE LE PERSONE NORMALI HANNO IL FINE SETTIMANA LIBERO... :-)))

2. riposo...:-)))

Grazie :-) Immagino di essere fuori dai guai, ma è così).
Motivazione: