[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 197

 

Erklären Sie das. Das verstehe ich nicht. Warum der Zustand

int Takeprofit = 62;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if(OrderTakeProfit() - OrderOpenPrice() < Takeprofit*pp )

funktioniert es wirklich? Obwohl beide Teile gleichwertig sind!!! Wie Sie unten sehen können.

2009.08.22 18:50:31 1999.10.11 23:43 Delta EURUSD,M1: OrderTakeProfit() - OrderOpenPrice() = 0.0062 Takeprofit*pp = 0.0062

Ich danke Ihnen!

 

Da Sie mit reellen Zahlen arbeiten, sollten Sie wissen, dass 0,0062 auch 0,0061999 oder 0,0062001 sein kann.

Verwenden Sie die Normalisierung.

 
OneDepo писал(а) >>

Da Sie mit reellen Zahlen arbeiten, sollten Sie wissen, dass 0,0062 auch 0,0061999 oder 0,0062001 sein kann.

Verwenden Sie die Normalisierung.

Ich habe versucht, Takeprofit*pp zu normalisieren - nichts hat funktioniert. Vielleicht sollten beide Seiten der Gleichung normalisiert werden?

 
001 >> :

Ich habe versucht, Takeprofit*pp zu normalisieren - nichts hat funktioniert. Vielleicht müssen beide Seiten der Gleichung (der Ungleichung) normalisiert werden?

Ja.

Die zweite Möglichkeit ist, mit dem Typ int zu arbeiten, zum Beispiel:

int temp = 0.5 + (OrderTakeProfit() - OrderOpenPrice())/ pp;
if ( temp < Takeprofit)
 
OneDepo писал(а) >>

Ja.

Die zweite Möglichkeit ist, mit dem Typ int zu arbeiten, zum Beispiel:

>> Vielen Dank!

 

Hallo!

Wie ändere ich die Farbe der Indikatorlinie in Abhängigkeit von der Bedingung - zum Beispiel so, dass ein anderer Bereich von Balken eine andere Farbe hat?

Die Funktion SetIndexStyle, die diese Aufgabe übernehmen soll, funktioniert nicht , indem sie die Farbe oder die Linienstärke festlegt - siehe Abbildung

Siehe Beispielcode unten.

Jeder Balken sollte eine andere Farbe und Dicke haben, aber sie sind alle nur rot und 2 dick.

//+------------------------------------------------------------------+
//|                                                       MinMax.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gray

//---- buffers
double ExtMapBuffer1[];
double Val;
int ExtCountedBars=0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Brown);
   SetIndexBuffer(0, ExtMapBuffer1);
   Val=Close[Bars-1];
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   

   if(Bars<=100) return(0);
   ExtCountedBars=IndicatorCounted();

   //---- check for possible errors
   if ( ExtCountedBars<0) return(-1);
   if ( ExtCountedBars>0) ExtCountedBars--;
   int    i, pos=Bars- ExtCountedBars-1; 
   Comment(Bars," ", ExtCountedBars, " ", pos); 
//---- last counted bar will be recounted
   
//----

   while( pos>=0) {
        
         if ( pos<100 && pos>0)   { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Red); Val=1.45; }
         if ( pos<200 && pos>100) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Blue); Val=1.44; }
         if ( pos<300 && pos>200) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4,Yellow); Val=1.43; }
         if ( pos<400 && pos>300) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,5,Magenta); Val=1.42; }
             
      ExtMapBuffer1[ pos]= Val;
    
    pos--;
     }
  return(0);
  }
//+------------------------------------------------------------------+
 
stera писал(а) >>

Hallo!

Wie ändere ich die Farbe der Indikatorlinie in Abhängigkeit von der Bedingung - zum Beispiel so, dass verschiedene Balkenbereiche unterschiedliche Farben haben?

Die Funktion SetIndexStyle, die diese Aufgabe übernehmen soll, funktioniert nicht , indem sie die Farbe oder die Linienstärke festlegt - siehe Abbildung

Siehe Beispielcode unten.

Jede Stufe sollte eine andere Farbe und Dicke haben, aber sie sind alle nur rot und Dicke 2.

Verwenden Sie zusätzliche Puffer, jeder mit seinem eigenen Stil und seiner eigenen Farbe

 
Vinin >> :

Verwenden Sie zusätzliche Puffer, jeder mit seinem eigenen Stil und seiner eigenen Farbe

Ich habe einmal eine ähnliche Frage gestellt, und gemeinsam haben wir herausgefunden, was klar sein sollte :)))

WennSetIndexStyle beim Start verwendet wird, ändert sich die Farbe ehrlich, aber der gesamte Puffer auf einmal. Das heißt, im aktuellen Diagramm hat der Puffer (die Linie) die Farbe, die der zuletzt ausgelösten SetIndexStyle-Anwendung entspricht.

 
stera писал(а) >>

Hallo!

Wie kann man die Farbe der Indikatorlinie ändern...

Siehe hier.

 
granit77 писал(а) >>

Ich habe einmal eine ähnliche Frage gestellt, und wir haben gemeinsam herausgefunden, was klar sein sollte :))

WennSetIndexStyle beim Start verwendet wird, ändert sich die Farbe ehrlich, aber der gesamte Puffer auf einmal. Das heißt, im aktuellen Diagramm hat der Puffer (die Linie) die Farbe, die der Farbe der zuletzt ausgelösten SetIndexStyle-Anwendung entspricht .

Herzlichen Dank, granit77.

Das ist eine umfassende Antwort.
Das hatte ich schon vermutet, aber ich konnte nicht glauben, dass eine so seltsame Idee in diese Funktion eingebettet war.

Für manche Zwecke kann es notwendig sein, die Farbe des gesamten Puffers zu ändern, aber praktischer ist es

Aber der Mechanismus der Einfärbung (und Änderung anderer Attribute) einiger Teile des Indikators.

EasyLang, zum Beispiel, hat es.

Ich werde an die Entwickler schreiben.

Gibt es irgendwo eine ausführlichere Beschreibung der MQL-Funktionen?

Mit den Beispielen der einen oder anderen Parameter?

Alle Parameter müssen entweder von mir selbst getestet oder von Beispielen Dritter übernommen werden.