Errori, bug, domande - pagina 356

 
Im_hungry:

Ho scritto qualcosa di simile a questo, ma dovresti etichettare gli array in modo diverso - (improbabile che aiuti, ma almeno

questo è meglio). cambiarlo:

a queste stringhe.

Anche il cambiamento:

a quello.

Non così. Diverse build fa, i vecchi metodi Type() nelle classi CPositionInfo, COrderInfo e CDealInfo della libreria standard sono stati sostituiti dai metodi PositionType(), OrderType() e DealType(). Quindi, queste funzioni dovrebbero essere corrette nei programmi MQL5 scritti in precedenza, altrimenti non funzioneranno correttamente.

Riscriverei il tuo codice in questo modo:

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

input int TriX_PARAM=14;
input int TriX_PARAM_Close=50;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;
CTrade mytrade;
CPositionInfo myposition;
CSymbolInfo mysymbol;
COrderInfo myorder;
int OnInit()
  {

   TriXHandle=iTriX(NULL,PERIOD_CURRENT,TriX_PARAM,PRICE_WEIGHTED);
   TriXHandle_Close=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM_Close,PRICE_WEIGHTED);
   ArraySetAsSeries(TriX_Close,true);
   ArraySetAsSeries(TriX,true);
   return(0);
  }

void OnTick()
  {
   if(myposition.Select(_Symbol))
    { 
     CopyBuffer(TriXHandle_Close,0,0,4,TriX_Close);
     if(myposition.PositionType()==POSITION_TYPE_BUY) 
//Закрываем позицию
     {
      if(TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
     } 
     else  
      if(TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
    }
   else
//Открываем позицию
     {
      CopyBuffer(TriXHandle,0,0,4,TriX);
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1);
     }
  }
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Rosh:
Tutte le finestre del grafico sono numerate a partire da zero. 0 - finestra principale del grafico, 1 - finestra del primo indicatore, che viene mostrato in una finestra separata. E così via.

Non ci sono dubbi su questo! Ma dove sono i valori di minimo e massimo, e perché appaiono solo dopo le manipolazioni con il grafico?
 
KffAlex:
Non c'è dubbio su questo! Ma dove sono i valori minimi e massimi, e perché appaiono solo dopo aver manipolato il grafico?
Meglio scrivere al service-desk. Questo è molto probabilmente un bug.
 

Per favore, illuminatemi su cosa significa l'errore

internal error #108             0       0

durante la compilazione dello script?

 
alsu:

Per favore, illuminatemi su cosa significa l'errore

durante la compilazione dello script?

Per quanto ho capito è

108 Nome inadatto per #define

 
Interesting:

Per quanto ne so io.

108 Nome inadatto per #define

è perché non ci sono definizioni o inludi nello script.

 
 
alsu:

Il fatto è che non ci sono definizioni o inludi nello script.

Lo script contiene sia
#includere
и
#define
 
alsu:

Poi trasferite blocco per blocco lo script ad un altro normalmente compilato. e vi imbatterete in una linea difettosa.

Scrivete quello che è stato.

 
sergeev:

poi trasferimento blocco per blocco dallo script ad un altro script normalmente compilato. e vi imbatterete in una linea difettosa.

Per favore, fatemi sapere di cosa si tratta.

L'ha reso semplice.

Ho commentato /* */ tutti OnStart() - l'errore è rimasto. Incluso, dopo aver riavviato la macchina.

Ripeto, niente inlude o definisce, niente a livello globale, comprese le variabili esterne. Non voglio ancora reinstallare il terminale))

Sviluppatori, HA!!! Cosa significa l'errore interno #108?????

Motivazione: