Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 88

 
WindSW:
Per favore, ditemi come vedere quanta memoria occupa Expert Advisor e come viene ridistribuita?

Il Task Manager di Windows dovrebbe essere sufficiente per voi.

Date un'occhiata aquesto articolo.

In generale, smontate il vostro Expert Advisor in script, fate funzionare tutte le funzioni e poi assemblatele in un mucchio.

 
WindSW:

Eppure non riesco a capire perché i livelli non vengono creati usando ObjectCreate. Tutte le funzioni funzionano, ma non vengono creati oggetti OBJ_TREND

Ci sono variabili definite a livello globale:

stringa oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

Il codice che dovrebbe creare i livelli:

Gente, aiutate a risolvere questo problema. Per favore

I livelli vengono creati, solo che non sono visibili)

Impostare le coordinate - tempo / prezzo. Hai degli zeri dappertutto.

 
Dima_S:

I livelli sono creati, solo che non si possono vedere)

Impostare le coordinate - tempo / prezzo. Hai degli zeri fissi lì.

Crea un oggetto senza legami, poi lo modifica. Qui.

L'oggetto non viene creato a causa di un nome errato (non assegnato). (Sopra ha già risposto). Di conseguenza, non può essere modificato per vederlo.

 
fyords:

Bene, diciamo che avete dichiarato delle variabili a livello globale, avete assegnato dei valori a queste variabili?

Se no, allora si dice al programma "crea un oggetto con tali e tante caratteristiche con il nome..." e c'è un problema - il nome non è dato. Quindi non lo crea.

Non sarebbe più facile specificarlo direttamente nel codice ObjectCreate?

Grazie! Per qualche ragione non ho pensato di farlo subito, perché nella versione 4 si definisce anche il nome dell'oggetto.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

Non riesco a risolvere l'errore di overflow dell'array. Ne ho scritto a pagina 88. L'Expert Advisor funziona per un po' di tempo e si blocca. Per essere più precisi funziona un passaggio dall'inizio alla fine di Expert Advisor e nel secondo passaggio nel ciclo sottostante l'array trabocca indicando una stringa:

H=High[j];

void CreateLevels()
   {
      double High[];
      ArrayResize(High,0);
      ArraySetAsSeries(High,true);
      CopyHigh(_Symbol,_Period,0,Candle,High);
      ArrayResize(HBar,0);
      ArrayResize(HBar,1000);
      int countH=0;
      int f1;
      double H;
      for(int j=Nachalo;j<=Candle;j++)
         {
          //--- поиск макс -----------------------------------
          if(iHighest(Symbol(),0,10,MN*2,j-MN)==j)
            {
             f1=0;
             H=High[j];                                 // отметка текущего хая
             ...                                        // здесь обработка флага f1
             if(f1==0)                                  // если занесение хая в массив разрешено
               {
                HBar[countH][0]=High[j];
                countH++;
               }
            }
         }
   }

Soprattutto, non capisco come l'array High[] possa traboccare, dato che viene specificato un numero specifico di haves? E perché il terminale indica un overflow nella stringa H=High[j]; ?

Per favore, puoi dirmi come implementarlo correttamente? È possibile nullare l'array High[] o scrivere l'high di una particolare candela nella variabile H in qualche altro modo?

 
WindSW:

Provate in questo modo:

for(int j=Nachalo;j< Candle;j++)

Base: l'indicizzazione dell'array inizia da zero, quindi quando Candle==100 l'ultimo elemento dell'array è indicizzato dal numero 99, non dal numero 100.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Yedelkin:

Provate in questo modo:

Base: l'indicizzazione dell'array inizia da zero, quindi quando Candle==100 l'ultimo elemento dell'array è indicizzato dal numero 99, non dal numero 100.

Grazie! Mi ha aiutato!
 

Buon pomeriggio, ho incontrato il seguente problema... Generato un Expert Advisor... Eseguilo sui futures dell'indice RTS. E lì, i lotti non sono frazionari = nessun money management funziona, e le quotazioni sono multipli di 10 = il trailing stop non funziona. Per favore consigliatemi, è possibile risolvere questo problema?

So come arrotondare i valori di iMa a 10 o 5, come ultima risorsa penso di eseguire il trailing stop separatamente.

 
oldiol: Se il mio EA non ha lotti frazionari = non funziona il money management, e le quotazioni multiple di 10 = non funziona il trailing stop. Per favore consigliatemi, è possibile risolvere questo problema?

Lo strumento ha una proprietà Volume_Step. Vedi se puoi usarlo per volumi non frazionari.

Per le quotazioni divisibili per 10, basta fare lo stesso passo di trailing stop.

 
Yedelkin:

Lo strumento ha una proprietà Volume_Step. Vedi se puoi usarlo per volumi non frazionari.

E per le quotazioni divisibili per 10, basta fare lo stesso passo di trailing stop.

Grazie mille) Farò un tentativo.