Fehler, Irrtümer, Fragen - Seite 356

 
Im_hungry:

Ich habe etwas Ähnliches geschrieben, aber Sie sollten die Arrays anders beschriften - (unwahrscheinlich, dass das hilft, aber zumindest

dies ist besser). ändern:

auf diesen Zeilen.

Auch ändern:

dazu.

Nicht so. Vor einigen Jahren wurden die alten Type()-Methoden in den Klassen CPositionInfo, COrderInfo und CDealInfo der Standardbibliothek durch die Methoden PositionType(), OrderType() und DealType() ersetzt. Daher sollten diese Funktionen in zuvor geschriebenen MQL5-Programmen korrigiert werden, da sie sonst nicht richtig funktionieren.

Ich würde Ihren Code folgendermaßen umschreiben:

#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:
Alle Kartenfenster sind von Null an nummeriert. 0 - Hauptfenster des Charts, 1 - Fenster des ersten Indikators, der in einem separaten Fenster angezeigt wird. Und so weiter.

Daran gibt es keine Zweifel! Aber wo sind die Werte von Minimum und Maximum, und warum erscheinen sie erst nach den Manipulationen mit dem Diagramm?
 
KffAlex:
Daran besteht kein Zweifel! Aber wo sind die Minimal- und Maximalwerte, und warum erscheinen sie erst nach der Manipulation des Diagramms?
Wenden Sie sich am besten an den Service-Desk. Dies ist höchstwahrscheinlich ein Fehler.
 

Bitte klären Sie mich auf, was der Fehler bedeutet

internal error #108             0       0

beim Kompilieren des Skripts?

 
alsu:

Bitte klären Sie mich auf, was der Fehler bedeutet

beim Kompilieren des Skripts?

Soweit ich weiß, ist es

108 Ungeeigneter Name für #define

 
Interesting:

Soweit ich es verstanden habe.

108 Ungeeigneter Name für #define

liegt daran, dass es im Skript keine Defines oder Inludes gibt.

 
 
alsu:

Die Sache ist die, dass es im Skript keine Definitionen oder Einschübe gibt.

Das Skript enthält sowohl
#include
и
#define
 
alsu:

Dann übertragen Sie das Skript Block für Block in ein anderes, normal kompiliertes Skript, und Sie werden auf eine fehlerhafte Zeile stoßen.

Schreiben Sie zurück, was es war.

 
sergeev:

dann Block für Block vom Skript in ein anderes, normal kompiliertes Skript übertragen. und Sie werden auf eine fehlerhafte Zeile stoßen.

Bitte lassen Sie mich wissen, was es ist.

Einfach gemacht.

Ich habe /* */ auskommentiert. alles OnStart()-Funktionskörper - der Fehler blieb. Auch nach einem Neustart des Geräts.

Ich wiederhole, keine Inludes oder Defines, nichts auf globaler Ebene, einschließlich externer Variablen. Ich möchte das Terminal noch nicht neu installieren))

Entwickler, HA!!! Was bedeutet der interne Fehler #108?????

Grund der Beschwerde: