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

 
Und mit den Opiatoren ist etwas nicht in Ordnung, wenns!!!
 
Dimka-novitsek:

Ich danke Ihnen!!! Setzen Sie die Normalisierung ein... Und verdammt, was zum Teufel ist auf !!!!!! los? Mein Kopf brennt. Scheint einfacher zu sein als Geometrie in der Schule.



Sie brauchen keine Normalisierung für ASK und BID, sondern Sleep(Shh1sec-5secs);
 

Ich hab's! So sieht's aus! Damit ich das richtig verstehe... Vielen Dank für Ihre Teilnahme, für Ihre Hilfe. Ich verstehe es selbst nicht. Achten Sie auf den obigen Code. Es gibt eine Bedingung

 if (strela1<strela2&&SELL==0&&BUY!=0
  ){ udalenie ();

Wenn... und wenn... und wenn es keine Kaufaufträge gibt. Ich meine, es gibt sie! Sie sind nicht Null. Wie Sie auf dem Screenshot sehen können, hat der Code gerade erst begonnen zu arbeiten und es gibt keine Kaufaufträge! Nun, nein! Und die Bedingung ist erfüllt, obwohl sie es nicht sein sollte!

Dies ist an der Meldung des Druckers im Expert Advisors-Fenster zu erkennen. Übrigens war der Auftrag perfekt eingestellt, als die Bedingung erfüllt war, d.h. er war eingestellt!

Es hat sich herausgestellt, dass ich die Bedingung falsch geschrieben habe?

Natürlich wurde die nächste Bedingung des Codes ausgelöst,

if (strela1<strela2&&BUY==0&&SELL==0){

die unter den gegebenen Umständen hätte ausgelöst werden müssen!

Was ist los!?

Was ist falsch an der logischen Bedingung?!?

Wie zum Teufel kann es sein, dass beide gleichzeitig hingerichtet werden?

 

Ich verstehe nicht, wie man... Damit sind gleich zwei Bedingungen erfüllt!!! Vielleicht bin ich ein Idiot... Aber ich verstehe das nicht. Das ist lächerlich. Ich schätze, ich weiß nicht, wie man einen if-Operator schreibt!

Mann, der ganze Code.

//+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#include <WinUser32.mqh>
  extern double  lot=1;                          
  extern int taymfreym=0 ;                           
  extern double  stoplos=200 ;                          
  extern double  takeprofit=500 ; 
  extern double  magicnumber=350 ;                          


void BreakPoint(){//if (!IsVisualMode()) return(0);
keybd_event(19,0,0,0);
Sleep(10);
keybd_event(19,0,2,0);}

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   Print (   "  НачалоНачал " ); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int i;
int start()
  {Print (   "  Начало " ); 
//----
for( int A=0; A<100 ; A++){
            
            double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, A);
            double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, A);
            
            int BUY=0,SELL=0;int ticket; 
            Print ( A,  "  strela1 " , strela1 , "    strela2  " , strela2 ); 
            
    
            
            for(int i=1; i<=OrdersTotal(); i++) {  
            if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symbol( ) )continue;      // Не наш фин. инструм
         if (OrderMagicNumber( ) !=magicnumber)continue;
         if (OrderType()==0){ BUY++; ticket=OrderTicket( );Print( "BUY++   " , BUY  ,"  ticket ",ticket);}
         if (OrderType()==1) {SELL++;ticket=OrderTicket( );Print( "SELL++   " , SELL  ,"  ticket ",ticket);}    } }
         
  
  if (strela1<strela2&&SELL==0&&BUY!=0
  ){ udalenie ();
              
   OrderSend(Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 3*Point, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);           
      Print( "strela1<strela2&&BUY==0&&SELL!=0 " , GetLastError()); }
            
  if (strela1>strela2){ udalenie ();
                
   OrderSend(Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, NormalizeDouble( Ask+ (stoplos*Point),Digits),   NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; 
        Print( "strela1>strela2&&SELL==0&&BUY!=0 " , GetLastError()); }
      
    if (strela1<strela2&&BUY==0&&SELL==0){    
            
           OrderSend( Symbol( ), OP_BUY, lot, NormalizeDouble(Ask, Digits), 3*Point, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  
            Print( "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError()  ,"  Ask ",Ask,"   stoplos= NormalizeDouble( Bid- (stoplos*Point),Digits)  ",
 NormalizeDouble( Bid- (stoplos*Point),Digits),"    takeprofit= NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); }
           
   if (strela1>strela2&&BUY==0&&SELL==0){  
   
            OrderSend( Symbol( ), OP_SELL, lot,NormalizeDouble( Bid, Digits), 3*Point, NormalizeDouble( Ask+ (stoplos*Point),Digits),   NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; 
            Print( "strela1>strela2&& OP_SELL  " , GetLastError()   ,"  Bid ",Bid,"    stoplos=   NormalizeDouble( Ask- (stoplos*Point),Digits)  ",
 NormalizeDouble( Ask- (stoplos*Point),Digits),"    takeprofit= NormalizeDouble( Bid+( takeprofit*Point),Digits) ", NormalizeDouble(Ask+( takeprofit*Point),Digits));
            Print( "strela1>strela2&& OP_SELL   " , GetLastError()  ," (stoplos*Point) ",(stoplos*Point),"   Point  ", Point,"   Digits  ", Digits); }
               
    
   
   
     } Print (   "  Конец " ); BreakPoint();     
//----
   return(0);
  }
//+------------------------------------------------------------------+

void udalenie (){ int total = OrdersTotal();
  for(i=total-1;i>=0;i--)
    {
    OrderSelect(i, SELECT_BY_POS);
   int type   = OrderType();  bool result = false;
    switch(type)
          { 
          case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3*Point, CLR_NONE ); break;
          case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3*Point, CLR_NONE ); break; 
          }
    if(!result)
      {
      int error =  GetLastError(); 
      string errorcomment = "Неудалось закрыть ордер №" + OrderTicket() + " " + Symbol() + " " + OrderType() + " " + error; 
      Print(errorcomment);
      }  
    }       
   }

Erklärung, nur um es einfacher zu machen... Die Standardauftragskommissionierung, wie ich sie sehe. Verkaufen Sie separat offene Aufträge in den Variablen BUY++, SELL++.

Dann sind diese Variablen in logische Bedingungen eingebunden. Der Rest scheint nicht von Bedeutung zu sein, aber wer weiß.

Eigentlich ist es klar, was ich auf den Drucken gesehen habe.

 
aedu:
Ich habe einen EA für die Arbeit in "einem Klick" heruntergeladen, kompiliert - keine Fehler, aber außer "Gesicht" in der Ecke wird nichts angezeigt. Hilfe !!!!!!!!!!!!!
McTrader_"+Symbol()+"_command.dat" Datei, ich denke es braucht so etwas wie ein Skript mit Befehlen für den EA. Er schafft sie nicht von selbst. Wenden Sie sich daher bitte an den Entwickler, um Erklärungen zu erhalten.
 
Dimka-novitsek:

Ich verstehe nicht, wie man... Damit sind gleich zwei Bedingungen erfüllt!!! Vielleicht bin ich ein Idiot... Aber ich verstehe das nicht. Das ist lächerlich. Ich schätze, ich weiß nicht, wie man einen if-Operator schreibt!

Mann, der ganze Code.

Erklärung, nur um es einfacher zu machen... Die Standardauftragskommissionierung, wie ich sie sehe. Verkaufen Sie separat offene Aufträge in den Variablen BUY++, SELL++.

Dann sind diese Variablen in logische Bedingungen eingebunden. Der Rest scheint nicht von Bedeutung zu sein, aber wer weiß.

Eigentlich ist es klar, was ich auf den Drucken gesehen habe.

Können Sie mir einen "Indikator" nennen?

obwohl sie nicht

 

Was ist los, warum regt er sich so auf?
 
Dimka-novitsek:

Ich verstehe nicht, wie man... Damit sind gleich zwei Bedingungen erfüllt!!! Vielleicht bin ich ein Idiot... Aber ich verstehe das nicht. Das ist lächerlich. Ich schätze, ich weiß nicht, wie man einen if-Operator schreibt!

Mann, der ganze Code.

Erklärung, nur um es einfacher zu machen... Die Standardauftragskommissionierung, wie ich sie sehe. Separate offene Aufträge werden in den Variablen BUY++, SELL++ gelesen.

Dann sind diese Variablen in logische Bedingungen eingebunden. Der Rest scheint nicht von Bedeutung zu sein, aber wer weiß.

Eigentlich ist es klar, was ich auf den Drucken gesehen habe.

Viele logische und technische Fehler. Die Logik des Öffnens von Aufträgen ist nicht nachvollziehbar (ich musste meine Fantasie bemühen). Du musst selbst lernen, indem du deinen eigenen schlampigen Code auswählst (bis er "in Ordnung" ist) ODER den Code anderer Leute studierst. Ich habe deinen Code für dich gemacht. - Wird es Ihnen helfen?

P.S. Wie ich bereits sagte, brauchen Sie die Preise für einen Tester nicht zu normalisieren. Aber einer der möglichen Gründe für den Fehler "Falscher Preis" bei der Ausführung eines Handelsauftrags kann der Slippage sein, der bei Ihnen 3 * Punkt (umgerechnet in int) = 0 ist.

Dateien:
rcjipewc.mq4  6 kb
 
Dankeschön!!!!!
 
san44es:

Leute, ein Ratschlag!

Es gibt eine benutzerdefinierte Funktion, die den Tiefstpreis des 5. Balkens des Hintergrundzeitrahmens zählt. Wie kann ich erreichen, dass sie den Preis eines bestimmten Zeitrahmens zählt?

iLow
Grund der Beschwerde: