[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 45

 
Stells:

Guten Tag.

Bitte helfen Sie mir, die Werte von Up_Line und Down_Line des ExTrendv2-Indikators (im Anhang) in den Expert Advisor zu extrahieren.

Ich versuche es auf folgende Weise:

For Up_Line iCustom(NULL, 0, "ExTrendv2", 0, 0,1)

für Down_Line iCustom(NULL, 0, "ExTrendv2", 0, 1,1)

scheitert.


Hängt ein EA mit einem solchen Indikator nicht das Terminal auf?
 

Im Testgerät scheint es nicht zu haken.

Aber ich kann die Werte immer noch nicht herausfinden, es macht einfach keinen Sinn.

 
Hallo zusammen, ich versuche, den Expert Advisor auf ein Symbol und 4 Timeframes gleichzeitig zu testen - ich habe ein kleines Problem - Fehler 129 - falscher Preis sowohl beim Öffnen als auch beim Schließen, der Trade-Thread scheint vor dem Senden von Orer und while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("Trade Thread ist beschäftigt. Wiederholung der Prüfung in "+DoubleToStr((Interval/1000),0)+" sec");
Sleep(Interval);} RefreshRates(); Weiß jemand, was dieses Zeug ist und wie man damit umgeht?
 
Stells:

Im Testgerät scheint es nicht zu haken.

Aber ich kann die Werte immer noch nicht herausfinden, es macht einfach keinen Sinn.


Versuchen Sie es auf diese Weise, es gibt keine Parameter.

Up_Line iCustom(  NULL, 0, "ExTrendv2", 0,1);
Down_Line iCustom(NULL, 0, "ExTrendv2", 1,1);

Obwohl der Indikator bei jedem Tick alles neu berechnet.

 
Dimoncheg:
Hallo zusammen, ich versuche den Expert Advisor auf einem Symbol und 4 Zeitrahmen gleichzeitig zu testen - ich habe ein kleines Problem - Fehler 129 - falscher Preis sowohl beim Öffnen als auch beim Schließen, der Trade Thread scheint vor dem Senden oder nach dem Schließen getrennt zu werden while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("Trade thread is busy. Wiederholung der Prüfung in "+DoubleToStr((Interval/1000),0)+" sec");
Sleep(Interval);} RefreshRates(); Weiß jemand, was dieses Zeug ist und wie man damit umgeht?
ERR_INVALID_PRICE 129 Falscher Preis


Normalisierung des Preises in Ziffern vor dem Senden der Anfrage an den Server

 
Vinin:


Versuchen Sie es auf diese Weise, es gibt keine Parameter

Obwohl der Indikator bei jedem Tick eine vollständige Neuberechnung vornimmt.

Ich bedauerte, dass ich es in die Kartei aufgenommen hatte. Das Terminal wurde nachdenklich, und nach 15 Minuten schaltete ich es ab.
 
artmedia70:
ERR_INVALID_PRICE 129 Falscher Preis


Normalisierung der Preise in Ziffern vor dem Senden der Anfrage an den Server



Die Preise werden natürlich durch NormalizeDouble(Ask,Digits) und NormalizeDouble(Bid,Digits) normalisiert, für das Senden von Aufträgen habe ich auch die Funktion von Igor Kim ausprobiert, die hier zu finden ist - es tritt derselbe Fehler auf, weil die Funktion sie nicht verarbeitet, sondern nur versucht, den Auftrag fünfmal zu senden und das war's. Der Fehler tritt nicht bei jedem Befehl zum Senden einer Bestellung auf, die meisten Bestellungen sind noch offen. Ich habe das Gefühl, dass dieses Problem etwas mit dem Handelsfluss zu tun hat, da in einem bestimmten Fall der Fehler auftritt, wenn der EA mehrere Orders gleichzeitig zu verschiedenen Zeitrahmen eines Symbols senden möchte und eine davon in der Regel gesendet wird, während der Rest keinen Erfolg mit diesem Fehler hat.
 
Dimoncheg:

Die Preise werden natürlich durch NormalizeDouble(Ask,Digits) und NormalizeDouble(Bid,Digits) normalisiert, für das Senden von Aufträgen habe ich auch die Funktion von Igor Kim ausprobiert, die hier zu finden ist - es tritt derselbe Fehler auf, weil die Funktion sie nicht verarbeitet, sondern nur versucht, den Auftrag fünfmal zu senden und das war's. Der Fehler tritt nicht bei jedem Befehl zum Senden einer Bestellung auf, die meisten Bestellungen sind noch offen. Ich habe das Gefühl, dass dieses Problem etwas mit dem Handelsfluss zu tun hat, denn in einem bestimmten Fall tritt der Fehler auf, wenn der EA mehrere Aufträge gleichzeitig zu verschiedenen Zeitrahmen eines Symbols senden will, aber ein Auftrag wird normalerweise gesendet, aber die anderen schlagen fehl.

Unmittelbar vor der Verwendung von Ask und Bid, führen Sie RefreshRates()
 
//-------------------------------------------------------------------+
extern int    TotalOrders    = 1;
//-------------------------------------------------------------------+
// Global variables
int Cnt = 0;              // counter variable, used in for() loops
    // only perform analysis and open new order if we have not reached our TotalOpenOrders max
    if(TotalOpenOrders() < TotalOrders)
    {
//+------------------------------------------------------------------+
//|-----------------------//  Orders Count  //-----------------------|
//+------------------------------------------------------------------+
// This function returns the total amount of orders the expert advisor has open  
int TotalOpenOrders()
{
  Cnt=OrdersTotal();
  int TotalOpenOrders = 0;
  if(Cnt==0)
  {
    return(0);
  }
    else
    {
    for(;Cnt>=0;Cnt--)
    {
      RefreshRates();
      OrderSelect(Cnt,SELECT_BY_POS);
      if(OrderMagicNumber()==Magic)
      {
      TotalOpenOrders++;
      }
    }
  }
  return(TotalOpenOrders);
}
 
artmedia70:
Ich bedauerte, dass ich es in die Kartei aufgenommen hatte. Das Terminal wurde nachdenklich, nach etwa 15 Minuten habe ich es ausgeschaltet.

Sie sehen sich den Code nicht an, bevor Sie etwas veröffentlichen.