[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 789

 
Hedin:

Liebe Programmierer,
Bitte geben Sie an, warum die Operatoren nicht ausgeführt werden, wenn die Bedingung erfüllt ist, bzw. warum sie zwar ausgeführt werden, aber in einem zufälligen Modus (z. B. wiederholt). In den Protokollen sind keine Fehler zu finden.


Bitte korrigieren Sie Ihren Code:

if ( MathAbs( ord_sl - (ord_open+First_sell_limit_SL*Point) ) < Point / 2.0 && ...

Und vergleichen Sie niemals Variablen vom Typ double auf Gleichheit.

 
PapaYozh:


Korrigieren Sie Ihren Code:

Und vergleichen Sie niemals Variablen vom Typ double auf Gleichheit.


Warum kann man Variablen vom Typ double nicht auf Gleichheit vergleichen?
 
Hedin:

Warum können Variablen wie double nicht auf Gleichheit verglichen werden?
Und die Suche funktioniert nicht mehr?
 
Hedin:

Warum können Variablen vom Typ double nicht auf Gleichheit verglichen werden?
Schauen Sie hier nach.
 
Necron:
In deinit wird in eine globale Variable geschrieben und in init wird der Wert dieser Variable gelesen. Wo liegt das Problem?

Nach meinem Verständnis ist eine globale Variable eine Variable, die außerhalb aller Funktionen deklariert wird. Globale Variablen werden einmal initialisiert, bevor spezielle Funktionen gestartet werden.

Das heißt, globale Variablen werden am Anfang des Programms vor der Startfunktion deklariert, einschließlich derjenigen, die ich beim nächsten Start an das Programm übergeben möchte. Dann habe ich, wie von Ihnen vorgeschlagen, den Wert dieser Variablen in deinit festgelegt. Ich verstehe, dass beim Start des Programms vor der Ausführung der init-Funktion alle globalen Variablen, die am Anfang des Programms beschrieben sind, einschließlich der Variablen, an denen ich interessiert bin, neu initialisiert werden. Und wenn es zur Funktion init kommt, ist meine zuvor registrierte Variable verloren! Oder liege ich da falsch?

 
Nein, er meinte die GlobalVariable, die in der Datei gespeichert ist.
 
ikatsko:

Nach meinem Verständnis ist eine globale Variable eine Variable, die außerhalb aller Funktionen deklariert wird. Globale Variablen werden einmal initialisiert, bevor spezielle Funktionen gestartet werden.

Das heißt, globale Variablen werden am Anfang des Programms vor der Startfunktion deklariert, einschließlich derjenigen, die ich beim nächsten Start an das Programm übergeben möchte. Dann habe ich, wie von Ihnen vorgeschlagen, den Wert dieser Variablen in deinit festgelegt. Ich verstehe, dass beim Start des Programms vor der Ausführung der init-Funktion alle globalen Variablen, die am Anfang des Programms beschrieben sind, einschließlich der Variablen, an denen ich interessiert bin, neu initialisiert werden. Und wenn es zur Funktion init kommt, ist meine zuvor registrierte Variable verloren! Oder liege ich da falsch?

Es gibt zwei Arten von globalen Variablen: die globalen Variablen Ihres Programms, über die Sie schreiben, und die globalen Variablen Ihres Terminals,
, die getrennt von Ihrem Programm für zwei Wochen gespeichert werden, wenn nicht darauf zugegriffen wird, wenn ich mich recht erinnere...
Sie werden z. B. für die Datenübertragung zwischen verschiedenen EAs verwendet, die gleichzeitig auf demselben Terminal arbeiten, usw.
Es sind die globalen Variablen des Terminals, die Sie benötigen.
 
Roger:
Nein, er meinte die GlobalVariable, die in einer Datei gespeichert ist.
Ja, ich meinte die globalen Variablen des Terminals. Diese Frage wurde bereits in einer privaten Nachricht gestellt, ich habe sie beantwortet.
 
Necron:
Ja, ich meinte die globalen Terminalvariablen. Diese Frage wurde bereits in der privaten Nachricht gestellt, ich habe sie beantwortet.
Ich habe es bereits herausgefunden. Das kommt vor... haben es nicht richtig verstanden... Entschuldigung :)
 
вот, собственно код моментума стандартного из МТ4 - ии??? я не вижу тут 
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
//+------------------------------------------------------------------+
//|                                                     Momentum.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int MomPeriod=14;
 
//---- buffers
double MomBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MomBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mom("+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,MomPeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Momentum                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
   
//----
   if(Bars<=MomPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
      
//----
   
   i=Bars-MomPeriod-1;
   if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      MomBuffer[i]=Close[i]*100/Close[i+MomPeriod];
      i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+
Roger:

Das ist eine merkwürdige Betrachtungsweise.

double iMA(

string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

Das erste Element.