Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 920

 

Hallo

meine Schaltfläche "Mit historischen Daten starten" ist nicht aktiv

Was könnte der Grund dafür sein?

 
mukata:

Hallo

meine Schaltfläche "Mit historischen Daten starten" ist nicht aktiv

Was könnte der Grund dafür sein?

Was anfangen?
 
Vinin:
Sind die Parameter richtig?
Nein, die Parameter sind korrekt. Prüfen Sie die Verschiebung von 0 auf 99. Alle Werte von 1 bis 99 stimmen eindeutig mit der Anzeige überein, aber bei einem Verschiebungswert von 0 stimmen die Daten nicht mit dem Indikator überein. Ich kann nicht herausfinden, wie sie genommen werden und was mein Fehler ist.
 

Viel Spaß euch allen :-)

Ich bin mit diesem Problem konfrontiert worden. Ich habe eine Funktion, die einen schwebenden Auftrag platziert. Sie werden jedoch NUR platziert, wenn es keinen Auftrag zu dem angegebenen Preis gibt. Aber eine Bestellung wird auf seltsame Weise zum gleichen Preis wiederholt. Hier ist die Funktion, die eine Bestellung aufgibt.

int fOrderOpenBuy(double PR1, double PTP){
bool chek1=false;
   RefreshRates();
   double lts=fGetLotsSimple(OP_BUY);
      if(lts>0){      
         if(!IsTradeContextBusy()){
            //double PR=Close[1]-(150*Point);
            double slts=ND(PR1-Point*StopLoss);
            if(StopLoss==0)slts=0;
//проверка ордеров
     int  TotalOrders=OrdersTotal(); 
           for (int i=0; i<=TotalOrders; i++){
     
                 if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){
                 
                     if   (PR1==OrderOpenPrice()){chek1=true;}   
                 Print ("Чек "+OrderOpenPrice()+"  "+PR1);
                 }
           }  
        if (chek1==false) {   int irv=OrderSend(Symbol(),OP_BUYLIMIT,lts,PR1,Slippage,slts,PTP,NULL,Magic_N,0,CLR_NONE); }
               if(irv>0){
                  PlaySound("ok");
                  return(irv);
               }
               else{
                  PlaySound("timeout");
                  Print ("Error open BUY. "+fMyErDesc(GetLastError())); 
                  return(-1);
               }
         }
         else{
            static int lt2=0;
               if(TimeCurrent()>lt2+20){
                  lt2=TimeCurrent();
                  Print("Need open buy. Trade Context Busy");
               }            
            return(-2);
         }
      }
      else{
         static int lt3=0;
            if(TimeCurrent()>lt3+20){
               lt3=TimeCurrent();
               if(lts==-1)Print("Need open buy. No money");
               if(lts==-2)Print("Need open buy. Wrong lots size");                  
            }
         return(-3);                  
      }
}  

Es werden dieselben offenen Preise ausgegeben, aber die Zeileif(PR1==OrderOpenPrice()){chek1=true;} will nicht ausgeführt werden. Kann mir jemand sagen, warum????

 

Weil ich die Nase voll habe von..... :-( die Preise sind gleich geblieben und die Bestellung ist noch offen.....

 
Liebe Profis !!!!! Der EA handelt nicht auf Demo und Real, aber im Strategy Tester ist alles OK!

Können Sie mir bitte sagen, was das Problem sein könnte? Ich habe versucht, verschiedene Indikatoren anzuhängen, sie funktionieren alle, aber nur im Strategy Tester!

Dateien:
 

Guten Tag zusammen!

Können Sie mir einen Tipp geben...

In dem folgenden Codeschnipsel gibt es zwei Bedingungen, wenn die Funktion Print eine Nachricht druckt.

Das Problem.

Die Druckfunktion druckt die Nachricht JEDEN Tick, ich muss sie nur beim ersten Tick drucken und bei den restlichen - in Ruhe.

Bitte beraten Sie mich, wie ich es nach dem ersten Ticken stoppen kann.

Ich danke Ihnen.

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))

wenn ( OrderType ()==OP_SELL)

X1 = OrderProfit( );

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))

wenn ( OrderType ()==OP_SELL)

wenn(X1 < 0)

Print(" LOW ", X1 );

 
solnce600:

Guten Tag zusammen!

Können Sie mir einen Tipp geben...

In dem folgenden Codeschnipsel gibt es zwei Bedingungen, wenn die Funktion Print eine Nachricht druckt.

Das Problem.

Die Druckfunktion druckt die Nachricht JEDEN Tick, ich muss sie nur beim ersten Tick drucken und bei den restlichen - in Ruhe.

Bitte beraten Sie mich, wie ich es nach dem ersten Ticken stoppen kann.

Ich danke Ihnen.

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))

wenn ( OrderType ()==OP_SELL)

X1 = OrderProfit( );

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))

wenn ( OrderType ()==OP_SELL)

wenn(X1 < 0)

Print(" LOW ", X1 );

Wenn es sich um eine Rennsite handelt, die einmal pro Takt stattfindet, verwende ich

wenn (b!=Bars){

b=Balken;

}

Die Berechnung, die in Klammern steht, findet also nur einmal pro Takt statt...

 
nikelodeon:

Wenn wir über die Rachsite einmal pro Takt sprechen, verwende ich

wenn (b!=Bars){

b=Balken;

}

Die Berechnung, die in Klammern steht, findet also nur einmal pro Takt statt...

Ich danke Ihnen vielmals.

Ich möchte, dass die Informationen auf dem ersten Minutenbalken und nur auf diesem angezeigt werden.

Die Version, die Sie vorschlagen, habe ich versucht, ..... aber es zeigt Informationen über 2 und 3 und so weiter ... weil der zweite Balken ist nicht gleich der erste und der dritte ist nicht gleich der zweite, usw..

Ich muss die Informationen einmal beim ersten Takt ausdrucken. Und bis der nächste Auftrag durch den STOP geschlossen wird,sollte dieDruckfunktion "ruhen".

 
solnce600:

Ich danke Ihnen vielmals.

Ich möchte, dass die Informationen auf dem ersten und nur auf dem ersten Minutenbalken angezeigt werden.

Die Option, die Sie anbieten, habe ich versucht, ..... aber es zeigt Informationen über 2 und 3 und so weiter ... weil der zweite Balken ist nicht gleich der erste und der dritte ist nicht gleich der zweite, usw.

Ich muss die Informationen einmal in der ersten Zeile ausdrucken. Und dieDruckfunktion sollte "ruhen" , bis der nächste Auftrag durch den STOP geschlossen wird.

Versuchen Sie, eine Flagge zu verwenden.

wie

bool flag=false;

......

if (x1<0)&&(flag==false){Drucken();flag=true;}

Dann wird der Ausdruck EINMAL gedruckt.

Und nachdem der Stopp ausgelöst wurde, setzen Sie das Flag auf false zurück und der Druck wird erneut ausgeführt....