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

 
Vinin:

Wenn Sie einen Indikator beschleunigen möchten, wenden Sie sich bitte an
Wenn ein Indikator, welcher? - Derjenige, der Mashki zählt? Wie auch immer - es wäre interessant!
 

Guten Tag! Fehler bei der Auftragsänderung 4051. Ich habe eine Stunde lang nachgedacht. Das scheint der richtige Parameter zu sein!!! Kurz und knapp, Note für Note. Der Parameter price ist der Eröffnungskurs des Auftrags, OrderOpenPrice(), er ist Standard.

Unser Stoppkurs liegt 10 Punkte unter dem Eröffnungskurs, und wir haben uns den Kurs gemerkt. Wir speichern sie in der Variablen tsena, wenn wir die Bestellung öffnen.

Wir haben zwei Aufträge, einen mit und einen ohne Gewinn. Das scheint klar zu sein. Worin besteht der Fehler? Was könnte es sonst sein?

Ja, die Bedingung scheint klar zu sein, obwohl sie nicht wirklich relevant ist. D.h. der Kurs hat sich um 30 Punkte bewegt, die Bedingung hat funktioniert (tsena+30*Punkt).

Wir haben einmal perenos=true gesetzt; diese Bedingungen scheinen tatsächlich zu funktionieren.

Ich weiß selbst nicht, wie ich denken soll.

Wir tragen es tatsächlich einmal perenos=true; Diese Bedingungen haben nicht funktioniert, weil es auch nicht funktioniert hat.


bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;// if( CCI_50S>CCI_50&& )napravlenieCCI=false;
 
 bool wishseLMA=false;//Свеча закрывается или находится выше LMA
 if (Bid>LMA_100) wishseLMA=true;Print ("до условияsrabotka    " ,srabotka );Alert("до условияsrabotka    " ,srabotka );
 
 if (EMA_20S>EMA_10S&&EMA_20<EMA_10&&napravlenieCCI&&wishseLMA&&!srabotka) {/// нашли пирисечение сверху вниз и направление CCI вверх
 RefreshRates();
           int tacket=OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (35*Point),Digits), 
           NormalizeDouble( Ask+( 45*Point),Digits), NULL, 450, 0, CLR_NONE);
           int Error=GetLastError();if (Error==0){  
           Sleep(2000); RefreshRates(); double profit = NormalizeDouble( Ask+( 45*Point),Digits); tsena=Ask; perenos = false;
           int tucket=OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (35*Point),Digits),
           0, NULL, 450, 0, CLR_NONE); 
           if (Error==0)   
           srabotka= true; }}
           
           if (Error!=0){ string errorcomment = "Ошибка открытия  ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);}
 
 
 if(tsena+30*Point<Ask&&!perenos){ 
 OrderModify(  tacket, OrderOpenPrice(), tsena-10*Point, OrderTakeProfit(), 0, CLR_NONE);
 Error=GetLastError();if (Error==0){  
 OrderModify(  tucket, OrderOpenPrice(), tsena-10*Point, OrderTakeProfit(), 0, CLR_NONE);
 Error=GetLastError();if (Error==0){  
 perenos=true;}}} 
 
 if (Error!=0){  errorcomment = "Ошибка модификайции ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);BreakPoint();} 
 

Es gibt einen wichtigen Parameter - tucket. Ich weise sie jedoch einer Variablen zu, also int tacket=OrderSend und int tucket=OrderSend,

und ich verwende OrderModify( tacket, und kurz gesagt, ich sehe dort keinen Fehler!!!

 

Oh, Mann... 2012.11.14 22:40:17 2012.08.16 15:30 Vasilypr EURGBP,M30: 1Error 0 tacket 5, d.h. der Auftrag wurde eröffnet, das Ticket wurde zugewiesen.

Und außerdem ist sie bereits gleich Null! Das heißt, im nächsten Abschnitt des Gesetzes, der sich mit der Änderung befasst.

2012.11.14 23:05:27 2012.08.17 11:03 Vasilypr EURGBP,M30: tacket 0 OrderOpenPrice() 0.7845 tsena-10*Point 0.7835 OrderTakeProfit() 0.789

Außerhalb des oben genannten Codebereichs wird die Variable überhaupt nicht abgespielt!

Ich kann das ukrainische Layout einer beliebigen Tastenkombination nicht ändern, und in Russisch geschrieben!

 
Dimka-novitsek:

Es gibt einen wichtigen Parameter - tucket. Ich weise sie jedoch einer Variablen zu, also int tacket=OrderSend und int tucket=OrderSend,

und ich verwende OrderModify( tacket, und kurz gesagt, ich sehe dort keinen Fehler!!!


Offensichtlich akzeptiert DC nicht sofort mit SL und TP. Nach dem Öffnen ändern Sie SL und TP. Und die 2. Position sollte nicht sofort, sondern erst mit dem nächsten Tick geöffnet werden!
 
Ja, ich danke Ihnen. Aber es gibt einen Schlupf, und der geht auf. Ich werde versuchen, separat zu ändern, zu stoppen, und ich trage nur einen Stopp, richtig?
 
Änderungsfehler, vistas vistas.
 
Dimka-novitsek:
Es ist ein Änderungsfehler, es ist ein Änderungsfehler.


In der Testversion mag es funktionieren, und auf Demka auch, aber auf Real funktioniert es nicht!

Und Schlüpfrigkeit ist nicht hilfreich!

 

Warum, was wird nicht passieren?

Oh, ich verstehe, die häufige Übermittlung von zwei Aufträgen auf einmal.

 
Dimka-novitsek:
Warum, was wird nicht passieren?

Es funktioniert nicht, den SL und den TP gleichzeitig zu setzen! Und wenn Sie sie ändern, müssen Sie eine Bedingung mit einer Lücke einfügen! Vor allem in der Nähe des Preises!