[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 266

 
hoz:

In den Parametern der Funktion selbst sehen wir:

fi_Ticket = 0

Normalerweise werden solche Funktionen aufgerufen, nachdem die Aufträge ausgewählt wurden, was bedeutet, dass sie ein Ticket haben. Warum wird der Standardwert dann auf Null gesetzt?

Wenn wir die Funktion ohne diesen Parameter aufrufen, wird kein einziges if ausgeführt, und die Funktion beginnt mit der Zeichenkette

RefreshRates();

Der nächste Schritt ist noch interessanter:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

Die Variable fs_Symbol wird sofort mit bs_Symbol verglichen.

Dasobigebs_Symbol ist nicht initialisiert worden, wo dieFunktionfGet_MarketInfo()selbst aufgerufen wird. Und wofür ist dieses bs_Symbol überhaupt da? Wenn die Bibliothek ohne Fehler kompiliert,

Wenn die Bibliothek ohne Fehler kompiliert, dann muss die Variable bs_Symbol irgendwo auf globaler Ebene deklariert werden. Dort (oder in einer anderen Funktion) sollte man nach seiner Initialisierung suchen...

Auch im Zustand:
if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

Wennfi_Ticket < 0 ist, ist das nächste, was zu tun ist...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

und dies widerspricht bereits der Bedingung. Am Anfang des Codes muss die Bedingungfi_Ticket < 0 gelten, und dann innerhalb dieser Bedingung das Ticket > 0. Wo ist die Logik?

Hinweis: Damit der Code funktioniert, muss die Bedingungfi_Ticket < 0 ODER fs_Symbol != bs_Symbol erfüllt sein. Wenn also am Ende des Codes ein weiteres if (fi_Ticket > 0) steht, bedeutet dies, dass nur die alternative Eingabebedingung erfüllt sein muss.
 

Hallo zusammen, könnt ihr mir helfen, ich kann mir keinen Reim darauf machen)))

 
kera8383:

Hallo zusammen, könnt ihr mir helfen, ich kann mir keinen Reim darauf machen)))

Beginnen Sie mit den FAQ.
 
tara:

Wahrscheinlich verwenden Sie unzulässig kleine StopLoss- und TakeProfit-Werte, aber das ist nur eine Vermutung. Es gibt nicht genügend Informationen.


Nein, meine Stopps sind groß, ich habe die folgenden Werte.

         SL=Ask + StopLoss*Point;     // значение StopLoss = 375
         TP=Ask - TakeProfit*Point;   // значение TakeProfit = 550
 
paladin80:

Normalisieren Sie die Stopps innerhalb von OrderSend nicht. Tun Sie dies vor RefreshRates und ersetzen Sie es dann. Drucken Sie diese Werte aus, um sicherzustellen, dass sie korrekt sind. Übrigens sollten Sie lernen, eine Position ohne Stopp zu eröffnen, denn es gibt Broker, die keine Aufträge mit Stopp akzeptieren. Ändern Sie die Haltestellen, nachdem Sie eine eingestellt haben - sie wird bestehen.

Sehr geringer Schlupf = 2. Das Beispiel ergibt 3 und das ist eine 4-stellige Quote. Wenn Sie einen solchen EA auf eine 5-stellige Notierung einstellen, beträgt der Slippage 0,2 Punkte. Es wird auf jeden Fall Fehler geben.

Vielen Dank für die klugen Ratschläge, ich habe sie beherzigt. Ich habe den Fehler behoben. Der Grund ist einfach: Alpari Brokerage-Unternehmen undECN Demo-Konto-Typ. Ich muss einen Auftrag öffnen und ihn dann ändern.
 
Fröhliche Zeit des Tages für alle... Meine Herren, bitte helfen Sie, es gibt ein solches Problem.... Ich teste meinen Forex-Roboter bei alpari, er funktioniert bei einer anderen Brokerfirma, ich arbeite seit drei Wochen mit dem Forex-Roboter und die Ergebnisse sind unterschiedlich. Ich habe etwas gegraben (natürlich wurde ich auch nervös..... piii) und ich erkannte, dass die Indizes des Indikators RSI, die in Berechnungen verwendet werden, sind etwas anders als die, die den gleichen Indikator bei Alpari zeigen. Trouble..... der Unterschied liegt in "Mikrometern :)", aber oooh es ist genug, um den EA zu ändern. Jungs bitte beraten, wie man diese Art von Sache zu beheben, ich danke Ihnen sehr viel!
 
laveosa:
fröhliche Tageszeit an alle ... Meine Herren, bitte helfen Sie mir, hier ist das Problem .... Ich teste meinen Forex Expert Advisor auf Alpari, aber ich benutze einen anderen Broker. Ich benutze ihn seit 3 Wochen auf Demo und die Ergebnisse sind unterschiedlich. Ich habe etwas gegraben (natürlich wurde ich auch nervös..... piii) und ich erkannte, dass die Indizes des Indikators RSI, die in Berechnungen verwendet werden, sind etwas anders als die, die den gleichen Indikator bei Alpari zeigen. Trouble..... der Unterschied liegt in "Mikrometern :)", aber oooh es ist genug, um den EA zu ändern. Jungs bitte beraten, wie man diese Art von Sache zu beheben, ich danke Ihnen sehr viel!


Die Angebote der verschiedenen DCs sind unterschiedlich. Demo - von real - auch. Indikatorwerte - auch.

Es ist notwendig, zu testen und zu überprüfen, expo und Indikator-Parameter auf die Geschichte der Brokerage-Unternehmen Sie gehen, um mit zu spielen...

Und das Expo muss wirklich angepasst werden(Fehlerbehandlung und all der Rest...).

 
StringSetChar funktioniert in diesem Code nicht, Sie müssen ":" durch "." ersetzen.

                        string    Object_Date_Secnd = TimeToStr(Object_Time,TIME_SECONDS);

                        for(int s1=0; s1<StringLen(Object_Date_Secnd); s1++) {
                           if(StringGetChar(Object_Date_Secnd,s1)==':' ) {
                              StringSetChar(Object_Date_Secnd,s1, '.');
                           }
                        }


- Warum funktioniert der Ersatz nicht?

Ich danke Ihnen!

 
Wenn also der TS bei Alpari anders war, ist das keine Garantie dafür, dass er bei einem anderen Maklerunternehmen die gleichen Ergebnisse bringt? Und wie können wir sie bei einem anderen Maklerunternehmen anpassen, wenn dessen Geschichte nicht so vollständig ist wie beispielsweise bei Alpari? Ist es möglich, die Indizes eines anderen Maklerunternehmens so anzupassen, dass sie mit denen von Alpari identisch sind?
 
laveosa:
Wenn also der TS bei Alpari anders war, ist das keine Garantie dafür, dass er bei einem anderen Maklerunternehmen die gleichen Ergebnisse bringt? Und wie können wir sie bei einem anderen Maklerunternehmen anpassen, wenn dessen Geschichte nicht so vollständig ist wie beispielsweise bei Alpari? Näher an den Körper, können wir den Indikator auf einem anderen Brokerage-Unternehmen anpassen, so dass es die gleichen Ergebnisse wie auf Alpari zum Beispiel bringen würde?

Sie können - das war's... Es wäre sinnvoll, eine solche Einstellung vorzunehmen. Sehen Sie sich die Geschichten von MetaQuotes an.
Grund der Beschwerde: