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

 
Elektronik:

Es wurde bereits alles für Sie erledigt und es funktioniert einwandfrei.

KimIV01.11.2006 18:49

Ich empfehle meinen erprobten und bewährten Code



https://forum.mql4.com/ru/4689


Danke für die Antwort, aber ich würde gerne wissen, warum es bei mir nicht funktioniert:)
 
hoz:

In der Dokumentation steht, dass die Funktion SetIndexEmptyValue verwendet wird, um einen "leeren" Wert anzugeben. Das heißt, wir geben an, bei welchem Wert wir überhaupt nichts zu zeichnen brauchen. Dies ist in unserem Fall sehr praktisch, da die Signale nicht bei jedem Balken auftreten. Es funktioniert folgendermaßen. Wenn Sie den Pfeil nicht auf dem aktuellen Balken zeichnen müssen, weisen Sie dem entsprechenden Eintrag im Datenpuffer einen "leeren" Wert zu, in unserem Fall 0.

Etwas, das ich nicht verstehe. Wenn etwas durch das Signal gezeichnet wird, wird es ohne das Signal nicht gezeichnet. Was ist dann der Zweck dieser Funktion im Allgemeinen?


Es ist üblich, dass der Computer ausdrücklich darauf hinweist, dass kein Wert vorhanden ist. Dann scheint es überhaupt nicht Null zu sein. Stellen Sie sich vor, Sie zeichnen einen Puffer - hier hat er den Wert 1,2903, 1,2905, 1,2904... Und dann ist es plötzlich 0. In diesen Nebeln müssen die Indikatorlinien plötzlich unter das Fenster tauchen!!!
 
hoz:

In der Dokumentation steht, dass die Funktion SetIndexEmptyValue verwendet wird, um einen "leeren" Wert anzugeben. Das heißt, wir geben an, bei welchem Wert wir überhaupt nichts zu zeichnen brauchen. Dies ist in unserem Fall sehr praktisch, da die Signale nicht bei jedem Balken auftreten. Es funktioniert folgendermaßen. Wenn Sie den Pfeil nicht auf dem aktuellen Balken zeichnen müssen, weisen Sie dem entsprechenden Eintrag im Datenpuffer einen "leeren" Wert zu, in unserem Fall 0.

Das verstehe ich nicht. Wenn etwas durch das Signal gezeichnet wird, wird es ohne das Signal nicht gezeichnet. Was ist dann der Zweck dieser Funktion im Allgemeinen?

Diese Funktion füllt das Array (in diesem Fall den Indikatorpuffer) mit einem leeren Wert EMPTY_VALUE = 0x7FFFFFFFF.
 
drknn:


Tatsächlich gibt es in der Sprache eine besondere Art von Variablen, die Farbe heißt. Zum Beispiel:

doppelte Velichina;

MyLine;

Velichina=2.569;

MyLine=Rot;


Bei mir war es so.
  OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, 00 FF33);  }
           
Was soll er denn machen, da Farbe reinschreiben?
 
Dimka-novitsek:

Ich hatte mir das so vorgestellt Was soll er da schreiben, eine besondere Farbe, oder was?

Nein, Sie können anstelle von 00FF33 einfach Rot oder eine beliebige Farbe aus der Web-Farbtabelle schreiben - öffnen Sie diesen Link - es gibt genug Farben, um keinen Hexadezimalcode zu verwenden.
 
Roboter
//+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


  extern double  lot=1;                          
  extern int taymfreym=0 ;                           
  extern double  stoplos=20 ;                          
  extern double  takeprofit=50 ; 
  extern double  magicnumber=350//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
            double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
            double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);
            int BUY=0,SELL=0;int ticket; 
            Print (  " 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( );}
         if (OrderType()==1) {SELL++;ticket=OrderTicket( );}    } }
         
   if (strela1>strela2&&BUY==0&&SELL==0){               
            
           OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits), 
  NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }
           
           
   if (strela1<strela2&&BUY==0&&SELL==0){  
   
            OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), 
  NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
            
            
  if (strela1>strela2&&BUY==0&&SELL!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),  
 NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }         
      
  if (strela1<strela2&&SELL==0&&BUY!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits),  
 NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
      
            
            
//----
   return(0);
  }
//+------------------------------------------------------------------+
Es ist ein Ort
 double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
 double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);

Die Strela2 funktioniert nicht, ihr Wert ist -1. Aufgabe, wenn der Pfeil nach oben zeigt, Kaufauftrag und umgekehrt. Oder vielleicht schreibe ich es auch gar nicht richtig!!!

Ichverwende dieseniCustom zum ersten Mal. Ist es richtig, strela1 und strela2 auf diese Weisezu vergleichen? Welche Art von Werten bekomme ich - ich meine, ich verstehe, dass es

den ersten und zweiten Puffer, aber nicht mehr als das.

Womit werden die Pfeile gezeichnet?

 

Indikator

/*ДЕКОМПИЛ УДАЛЕН, ВАМ ПРЕДУПРЕЖДЕНИЕ*/

Womit werden die Pfeile überhaupt gezeichnet?

 

Was bedeutet das Wort "tralit"?

Das Zitat lautet im vollen Wortlaut wie folgt:

<Advisor verwendet"Alligator"-Indikatorensignale für Eingaben, verschiebt die Position auf Breakeven und trawlt mit einem festgelegten Schritt.

 
Ich verstehe das nicht! Ich habe mir von einem Mann einen Indikator per Post schicken lassen. Woher hat er sie dekompiliert? Ja, ich habe mehr als einmal ganz ähnliche Indikatoren gesehen. Bringen Sie sie bitte wieder dahin zurück, wo sie hingehören!
 
Ja, ich habe eine Zeile darin gesehen.