[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 17

 

Hallo! Die Frage ist, wie wir wissen, ob das Objekt manuell gelöscht wird, wenn wir nur die Beschreibung des Objekts kennen. z.B. Objekt mit einem unbekannten Namen, Take Profit ist mit dem Objekt verbunden, wenn das Objekt gelöscht wird, entfernen Sie Take Profit, und wir kennen den Namen des Objekts nicht ....

Gibt es eine Möglichkeit, den Namen des Objekts zu ändern ????

 

Bitte helfen Sie mir, den EA zu verfeinern! Ich möchte, dass er einen Auftrag öffnet, wenn das Signal kommt, wenn der nächste kommt, und so weiter, unabhängig davon, ob es offene Aufträge gibt oder nicht.

Bitte sagen Sie mir, was los ist!

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Drucken(flag,flagg);

Ma_1 - kurz
Ma_2 - lang

wenn Ma_1>Ma_2 news.wav ohne Unterbrechung piept und 0 1 ausgibt (d. h. flag=0 flagg=1)

aber wie kann es sein, dass wenn flagg=1, die Bedingung (Ma_1>Ma_2 && flagg==0) erfüllt ist und {PlaySound("news.wav") durchläuft ???

 
Hallo an alle, ich brauche, um die EA, um alle Positionen nach einem bestimmten Prozentsatz des ursprünglichen Betrags der requited Betrag zu schließen, zum Beispiel, wenn kein Auftrag geöffnet ist, zum Beispiel, die requitty von 1000 und die % der requitty ist auf 5% gesetzt, so schließt es alle Positionen mit requitty 1050, machte ich die EA eine globale Variable aufgezeichnet und dass er diesen Wert zu zählen und Positionen zu schließen, aber die EA will nicht zu schließen,Ich habe es so gemacht, der Kontostand steigt und ich muss einige Positionen bei 5% des "Eigenkapitals" schließen, aber es ist nicht 1050 und manchmal muss ich noch etwas warten, oder der Preis ändert die Richtung und ich bekomme einen Verlust statt eines Gewinns, bitte helfen Sie, wer weiß und hat globale Veränderungen erlebt!!! Vielen Dank für die Antwort.
Dateien:
 
Guten Abend! Verstehe ich das richtig, dass in
iStochastic
Modus
Ist es die K- oder die D-Linie, auf die ich mich beziehe? Außerdem ist 0 ein K und 1 ein D?
 

Und sehen Sie sich eine Variante wie diese an, ohne globale Variablen.

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
Ja, es sollte keine Signale geben, bevor Sie die Maische wechseln!!! Irgendwie... Sehen Sie sich den gesamten Code an! Ich weiß nicht, es scheint nicht aufzufallen...
 
Ich brauche den Berater zu erinnern, die eQuity-Wert, wenn es keine offenen Aufträge, zum Beispiel 1000 und wie ich schrieb %-5 der eQuity-Wert ist 1050, wenn alle Positionen geschlossen sind, habe ich es so einige Aufträge geschlossen sind und die Balance erhöht, aber der Gewinn ist negativ von allen Aufträgen und der Berater wartet, bis der Gewinn ist + dann schließt alle Positionen
 
lottamer:

deadlock.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Drucken(flag,flagg);

Ma_1 - kurz
Ma_2 - lang

wenn Ma_1>Ma_2 news.wav ohne Unterbrechung piept und 0 1 ausgibt (d. h. flag=0 flagg=1)

aber wie kann es sein, dass wenn flagg=1, die Bedingung (Ma_1>Ma_2 && flagg==0) erfüllt ist und {PlaySound("news.wav") durchläuft ???


Drucken Sie den Zustand der Flaggen für jede Bedingung getrennt aus. Das ist so, weil der Zustand der zweiten Flagge in den Bedingungen nicht berücksichtigt wird.

P.S. Und es ist bequemer,Print("flag=",flag, "flagg=",flagg) auszudrucken, um Verwechslungen zu vermeiden;

 

So habe ich den Roboter in der Demo. Ich kann mich nicht mehr im Detail daran erinnern, wie ich auf die Idee gekommen bin, es zu schreiben.

if(Gewinn>Kontostand()*koefitsientudaleniya){
int Total=OrdersTotal();
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() != 450) continue;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i," GetLastError()CloseOP_SELL ", GetLastError() );}
if(Auftragsart()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i," GetLastError()CloseOP_BUY ", GetLastError() );}}} // Wenn der Gewinn einen von uns festgelegten Wert überschreitet, schließen wir alle Aufträge!
//----

Oder lassen Sie sich von unseren älteren Freunden beraten...