[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 484

 
Dimka-novitsek:
Aspetti, mi scusi, metto le sottovesti dappertutto!
Dimitri, tieni i tuoi pensieri per te e posta qui le tue domande.
 
buxs:

Buon giorno o notte! Una domanda per gli sviluppatori di mt4 e per tutti gli altri.

Quali sono i requisiti minimi di sistema per il client MT?

Voglio eseguirlo sul mio vecchio hardware: Athlon 800mg, 512mb, XP SP3. Quando eseguo MT 4 o 5, si spegne dopo 2 secondi. Il problema non è chiaramente nel windup o nell'hardware, questo hardware esegue Visual Studio con debugger (io stesso sono un programmatore), e l'eccezione non si presenta nel sistema (poiché il mio debugger non funziona). Immagino che al cliente stesso non piaccia qualcosa e si chiude di conseguenza. Quindi la domanda, qual è la ragione e cosa non piace a mt, davvero la frequenza della CPU? ))

MT4 non ama il debugger dalla build 226, MT5 dall'inizio.
 
buxs:

Buon giorno o notte! Una domanda per gli sviluppatori di mt4 e per tutti gli altri.

Quali sono i requisiti minimi di sistema per il client MT?

Voglio eseguirlo sul mio vecchio hardware: Athlon 800mg, 512mb, XP SP3. Quando eseguo MT 4 o 5, si spegne dopo 2 secondi. Il problema non è chiaramente nel windup o nell'hardware, questo hardware esegue Visual Studio con debugger (io stesso sono un programmatore), e l'eccezione non si presenta nel sistema (poiché il mio debugger non funziona). Immagino che al cliente stesso non piaccia qualcosa e si chiude di conseguenza. Quindi la domanda, qual è la ragione e cosa non piace a mt, davvero la frequenza della CPU? ))

Processori che soddisfano i requisiti minimi per eseguire MetaTrader 4
 


Grazie per il link. Ora è chiaro che MT usa SSE3, ma quel gizmo non ha questo set di istruzioni, e ora capisco quei crash senza log :)

È un peccato, volevo far funzionare questo vecchio ragazzo anche per l'autotrading...

 

Salve.

Ho una domanda sulla funzione iCustom: ho un indicatore di freccia ordinario che contiene due buffer - una freccia giù e una freccia su. Ho fatto un Expert Advisor usando questo indicatore e invece di aprire ordini ho prescritto Alert "down arrow" e"up arrow" per i test, come risultato entrambi i messaggi appaiono su ogni tick e questo accade durante tutto il periodo di test. Ho controllato i valori in entrambi i buffer con Alert e ho ottenuto la stessa cifra per entrambi i buffer ad ogni tick - 214783647.

Non so cosa c'è di sbagliato e quali condizioni devono essere applicate nell'Expert Advisor affinché i miei trade si aprano quando la freccia arriva e non ad ogni tick.

P.S. Ho provato un altro indicatore (disegna l'istogramma in una finestra separata) qui in alcuni tick dà il valore del prezzo corrente mescolato con il numero214783647, cioè sono uno dopo l'altro in ogni tick, e poi solo214783647

Codice indicatore:

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

double CrossUp[];
double CrossDown[];
extern int FasterEMA = 5;
extern int SlowerEMA = 8;
extern bool SoundON=true;
double alertTag;
 double control=2147483647;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY,1);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 0; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
          CrossDown[i] = High[i] + Range*0.5;
      }
        
  }
   return(0);
}
В советнике сделал следующее:
double ind1up0 = iCustom(NULL,0,"FXind-1",5,8,0,0);    //Стрелка вверх, на покупку на текущем баре
double ind1down0=iCustom(NULL,0,"FXind-1",5,8,1,0);    //Стрелка вниз, на продажу на текущем баре

if(ind1up0>0)Buy=true;
if(ind1down0>0)Sell=true;
 
if(ind1up0!=EMPTY)Buy=true;
if(ind1down0!=EMPTY)Sell=true;
 
midorum:
Grazie! Si è rivelato facile.
 
midorum:

Dovremmo anche aggiungere un controllo per EMPTY_VALUE
 
midorum:

Ah, no! Entrambi i buffer sono riempiti con214783647 ad ogni tick, che ci sia una freccia o meno.

È proprio normale?

 
Vinin:

Dovremmo anche aggiungere un controllo per EMPTY_VALUE
Mi dispiace,EMPTY_VALUE, nonEMPTY
Motivazione: