Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 870

 
Alexey G. Smolyakov:
Der vollständige Pfad des Ordners MQL4\Indicators\Used. Es scheint, dass es keinen Ausweg aus dem Ordner gibt. Dies ist jedoch eine Anomalie - andere Expert Advisors arbeiten mit ihren Indikatoren in ähnlichen Ordnern ohne Probleme. Aber was ist das Problem mit diesem Indikator - ich verstehe es nicht. Ich habe mir den Code angesehen, aber ich habe nicht genug Wissen und Erfahrung, um ihn zu verstehen. Ich habe den Verdacht, dass nur der letzte Takt oder etwas Ähnliches gezählt wird.

dann ist alles in Ordnung

Drücken Sie Strg+D im Terminal - das Datenfenster öffnet sich, werfen Sie den Indikator auf den Chart und Sie sehen im Datenfenster die Indikatorpuffer und deren Werte für jeden Bar, die gleichen Zahlen erhalten Sie über iCustom()

es gibt Indikatoren, die auf einigen Balken EMPTY_VALUE haben - Sie werden eine leere Zelle im Datenfenster sehen (es ist nicht garantiert, dass der Autor des Indikators nicht 0.0 anstelle von EMPTY_VALUE gesetzt hat - Sie müssen es überprüfen)

Wenn dann iCustom() aufgerufen wird, muss der erhaltene Wert mit EMPTY_VALUE verglichen werden. Suchen Sie in der kodobase oder im ZigZag EA oder im ZigZag upload - dort finden Sie ein fertiges Beispiel, wie Sie mit leeren Werten des EMPTY_VALUE Indikators arbeiten können

 
Igor Makanu:

dann ist alles in Ordnung

Drücken Sie Strg+D im Terminal - das Datenfenster öffnet sich, werfen Sie den Indikator auf den Chart und Sie sehen im Datenfenster die Indikatorpuffer und deren Werte für jeden Bar, die gleichen Zahlen erhalten Sie über iCustom()

es gibt Indikatoren, die auf einigen Balken EMPTY_VALUE haben - Sie werden eine leere Zelle im Datenfenster sehen (es ist nicht garantiert, dass der Autor des Indikators nicht 0.0 anstelle von EMPTY_VALUE gesetzt hat - Sie müssen es überprüfen)

Wenn dann iCustom() aufgerufen wird, muss der erhaltene Wert mit EMPTY_VALUE verglichen werden. Suchen Sie in kodobase oder im Expert Advisor auf ZigZag oder im ZigZag Upload in eine Datei - dort sehen Sie ein fertiges Beispiel, wie Sie mit leeren Werten des EMPTY_VALUE Indikators arbeiten können

Danke, die Überprüfung der Werte für EMPTY_VALUE hat geholfen.
 
Guten Tag. Wie kann man eine Funktion erstellen, die anzeigt, was in den Einstellungen eingestellt ist (nur lang / nur kurz / lang & kurz). Das habe ich versucht, aber es funktioniert nicht
string LSset()
{
string LS;
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_LONGONLY) LS="ONLY LONG";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_SHORTONLY) LS="ONLY SHORT";
if (SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_SHORTONLY && 
   SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_LONGONLY) LS="LONG & SHORT";
return(LS);
}
Dateien:
 
Lomonosov1991:
Guten Tag. Wie kann man eine Funktion erstellen, die anzeigt, was in den Einstellungen eingestellt ist (nur lang / nur kurz / lang & kurz). Das habe ich versucht, aber es funktioniert nicht

So sollte es nicht funktionieren. Es ist möglich, eine solche Funktion zu schreiben, aber für einen Anfänger schwierig.

 
fxsaber:

So sollte es nicht funktionieren. Es ist möglich, eine solche Funktion zu schreiben, aber für einen Anfänger schwierig.

Suchregeln, vor ein paar Jahren versprachen die Entwickler, den Zugriff eines Experten auf diese Einstellungen zu ermöglichen, aber sie haben es nie getan

Lösunghttps://www.mql5.com/ru/forum/121619#comment_3208150

dll-Lösung, weiß nicht, warum Sie sie brauchenhttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: Ich habe nicht überprüft, aber suchen Sie die Threads, es scheint das Problem der nicht speichern diese Einstellungen bei der Anwendung der Chart-Vorlage bleibt

LongOnly, ShortOnly or Long&Short?
LongOnly, ShortOnly or Long&Short?
  • 2009.11.03
  • www.mql5.com
Не подсажет ли кто нибудь как внутри советника оределить в каком режиме он запущен LongOnly, ShortOnly or Long&Short? Заранее спасибо...
 
extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   int P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return(P);
}

Ich habe eine Funktion auf dem Durchschnittsberater gemacht. Wenn mehr als 3 Aufträge offen sind, wird jeder nachfolgende Auftrag weiter geöffnet.

Ich kann die Warnung nicht korrigieren(möglicher Datenverlust aufgrund der Typkonvertierung)

Bitte um Rat, was zu tun ist)

 
Lomonosov1991:

Ich habe eine Funktion auf dem Durchschnittsberater gemacht. Wenn mehr als 3 Aufträge offen sind, wird jeder nachfolgende Auftrag weiter geöffnet.

Ich kann die Warnung nicht korrigieren(möglicher Datenverlust aufgrund der Typkonvertierung)

Bitte um Rat, was zu tun ist)

P=(int)(P*xxx);

Für eine genauere Berechnung wäre es wahrscheinlich besser, wenn man

extern int punkt=100;
extern int Ordersss=3;
extern double xxx=1.2;

int PunktsX()
{
   double P=punkt;                             
   int i;
   for(i=Ordersss; i<NumberOfPositions(); i++)
   P*=xxx;
   return (int) P;
}
 
Konstantin Nikitin:

Für eine genauere Berechnung ist es wahrscheinlich besser, wie folgt vorzugehen

Danke) Ich wusste nicht, dass man das mit der Rückgabe machen kann)

 
Igor Makanu:

Suchregeln, vor einigen Jahren versprachen die Entwickler, diese Einstellungen einem Experten zugänglich zu machen, aber sie haben es nie getan

Lösunghttps://www.mql5.com/ru/forum/121619#comment_3208150

dll-Lösung, weiß nicht, warum sie benötigt wirdhttps://www.mql5.com/ru/forum/231434/page2#comment_6773340

ZS: Ich habe es nicht überprüft, aber wenn man die Threads durchsucht, scheint es, dass das Problem, dass diese Einstellungen bei der Anwendung der Diagrammvorlage nicht gespeichert werden, bestehen bleibt

Danke, ich werde es ausprobieren)

 
Lomonosov1991:

Ich werde es versuchen)

Forum für Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: Experte

fxsaber, 2019.06.04 16:40

// MT4-советник показывает, в каком режиме Long/Short был запущен.

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

int GetLongShortFlag( const int Chart_ID = 0 )
{
  MqlParam Params[];
  string Names[];
  
  const int Res = EXPERT::Parameters(Chart_ID, Params, Names);
  
  return(((Res & 3) << 1) + (Res & 1));
}

string LongShortToString( const int Chart_ID = 0 )
{
  const int Flag = GetLongShortFlag(Chart_ID);
  string Str = NULL;
  
  if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY) && (bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Long & Short";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_LONGONLY))
    Str = "Only Long";
  else if ((bool)(Flag & SYMBOL_TRADE_MODE_SHORTONLY))
    Str = "Only Short";
    
  return(Str);
}

int OnInit()
{
  Alert(LongShortToString());
  
  return(INIT_FAILED);
}