[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 197

 

Spiegare. Non capisco. Perché la condizione

int Takeprofit = 62;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

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

funziona come vero? Anche se entrambe le parti sono uguali!!! Come potete vedere qui sotto.

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

Grazie!

 

Dato che lavori con i numeri reali, dovresti sapere che 0,0062 può essere in realtà 0,0061999 o 0,0062001.

Usare la normalizzazione.

 
OneDepo писал(а) >>

Dato che lavori con i numeri reali, dovresti sapere che 0,0062 può essere in realtà 0,0061999 o 0,0062001.

Usare la normalizzazione.

Ho provato a normalizzare Takeprofit*pp - niente ha funzionato. Forse entrambi i lati dell'equazione dovrebbero essere normalizzati?

 
001 >> :

Ho provato a normalizzare Takeprofit*pp - niente ha funzionato. Forse entrambi i lati dell'equazione (la disuguaglianza) devono essere normalizzati?

Sì.

La seconda opzione è lavorare con il tipo int, per esempio:

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

Sì.

La seconda opzione è lavorare con il tipo int, per esempio:

>> Grazie!

 

Ciao!

Come posso cambiare il colore della linea dell'indicatore a seconda della condizione - per esempio, in modo che diversi intervalli di barre abbiano colori diversi?

La funzione SetIndexStyle, che dovrebbe fare questo, non funziona impostando il colore o lo spessore della linea - vedi figura

Vedere il codice di esempio qui sotto.

Ogni barra dovrebbe avere un colore e uno spessore diversi, ma sono tutte rosse e spesse 2.

//+------------------------------------------------------------------+
//|                                                       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 писал(а) >>

Ciao!

Come posso cambiare il colore della linea dell'indicatore a seconda della condizione - per esempio, in modo che un diverso intervallo di barre abbia un colore diverso?

La funzione SetIndexStyle, che dovrebbe fare questo, non funziona impostando il colore o lo spessore della linea - vedi figura

Vedere il codice di esempio qui sotto.

Ogni passo dovrebbe essere di un colore e di uno spessore diverso, ma sono tutti solo rossi e di spessore 2.

Utilizzare buffer aggiuntivi, ognuno con il proprio stile e colore

 
Vinin >> :

Utilizzare buffer aggiuntivi, ognuno con il proprio stile e colore

Una volta ha iniziato una domanda simile, e insieme abbiamo elaborato ciò che avrebbe dovuto essere chiaro :)))

SetIndexStyle se usato all'inizio cambia onestamente il colore, ma tutto il buffer in una volta. Cioè, nel grafico corrente, il buffer (linea) avrà il colore corrispondente all'ultima applicazione SetIndexStyle attivata.

 
stera писал(а) >>

Ciao!

Come cambiare il colore della linea dell'indicatore...

Guarda qui.

 
granit77 писал(а) >>

Una volta ha iniziato una domanda simile, e insieme abbiamo elaborato ciò che avrebbe dovuto essere chiaro :))

SetIndexStyle se usato all'inizio cambia onestamente il colore, ma tutto il buffer in una volta. Cioè, nel grafico corrente, il buffer (linea) avrà il colore corrispondente al colore dell'ultima applicazione SetIndexStyle attivata .

Grazie mille, granit77.

Questa è una risposta esauriente.
Lo sospettavo, ma non potevo credere che un'idea così strana fosse incorporata in questa funzione.

Può essere necessario cambiare il colore di tutto il buffer per alcuni scopi, ma più pratico è

Ma il meccanismo di colorazione (e di modifica di altri attributi) di alcune parti dell'indicatore.

EasyLang, per esempio, ce l'ha.

Scriverò agli sviluppatori.

C'è una descrizione più dettagliata delle funzioni MQL da qualche parte?

Con gli esempi di alcuni o altri parametri?

Tutti i parametri devono essere testati da me o presi da esempi di terzi.