Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 933

 
Grazie,kosmos0975!
Lo proverò. Ma temo che non funzionerà sulle barre settimanali, per esempio.
 
Potete dirmi dove posso trovare un esempio di codice che dipinge la linea dell'indicatore in diversi colori?
 
Leo59:
Potete dirmi dove posso trovare un esempio di codice che dipinge la linea dell'indicatore in diversi colori?
Tanti colori, tanti buffer! Se si cambia il colore si cambia il buffer! Molti esempi in CodeBase!
 
Come fare una voce sulla linea giusta ... nel file tht...
 
borilunad:
Tanti colori, tanti buffer! Se il colore cambia, si cambia il buffer! Un sacco di esempi in CodeBase!
Grazie.
 
Cosa c'è che non va? Perché ci sono aree blu che non sono state prese in considerazione?
#property  indicator_separate_window
#property  indicator_buffers 3
#property   indicator_color1  Aqua
#property   indicator_width1  1
#property   indicator_color2  Red
#property   indicator_width2  1
#property   indicator_color3  Yellow
#property   indicator_width3  1

extern int       Fperiod=1;
extern int       Speriod=2;
extern int       Method=3;
extern int       PRICE_MODE=PRICE_WEIGHTED;

double   Buf0[];
double   Buf1[];                                
double   Buf2[];                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
    SetIndexBuffer(0,Buf0);
    SetIndexBuffer(1,Buf1);
    SetIndexBuffer(2,Buf2);

    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexStyle(2,DRAW_LINE);

    SetIndexEmptyValue(1,EMPTY_VALUE);   
    SetIndexEmptyValue(2,EMPTY_VALUE);   

    IndicatorShortName("Proba ");                
   
    SetIndexDrawBegin(0, 0);  
    SetIndexDrawBegin(1, 0);
    SetIndexDrawBegin(2, 0);

    return(0);
   }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
   {
    int i; 
    int limit;
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    for (i = limit;i>=0;i--)
        {  
         Buf0[i]=iMA(NULL,0,Fperiod,0,Method,PRICE_MODE,i)-iMA(NULL,0,Speriod,0,Method,PRICE_MODE,i);
         if(Buf0[i] > Buf0[i+1])
             {
              Buf1[i] = Buf0[i];
//              if(Buf0[i+1] > Buf0[i+2])
//                   Buf1[i+1] = Buf0[i+1];
//              else Buf2[i+1] = Buf0[i+1];
             }
         else
             {
              Buf2[i] = Buf0[i];
//              if(Buf0[i+1] < Buf0[i+2])
//                   Buf2[i+1] = Buf0[i+1];
//              else Buf1[i+1] = Buf0[i+1];
             }
        }              
    return(0);
   }


 
È possibile collegare tre grafici con diversi timeframe nell'EA? Sulla base delle letture degli indicatori nei due grafici, si cerca un luogo e una coppia di valute in cui entrare, e sulla base dell'ultimo terzo grafico, si calcolano un'entrata, uno stop e un profitto, e si apre una posizione per entrare. È tecnicamente possibile? O è necessario creare un EA specifico per un certo timeframe per lavorare in un grafico? Questo richiede non solo il conteggio delle letture di barre, tick o candele da grafici di diversi timeframe, ma anche l'analisi delle letture di almeno due indicatori e l'apertura di un ordine basato su questi dati.
 
Stavo scrivendo una funzione per il rilevamento di flytrap e mi sono bloccato in qualcosa che non capisco. l'istruzione if non funziona. forse ho scritto qualcosa di sbagliato da qualche parte, voglio che tu dia un'occhiata fresca, perché non capisco perché. ho anche registrato un video dal debugger, dove mostro che i valori sono uguali, ma non funziona. per favore metti il mio cervello a posto))))
{
      int size = ArrayRange(arrayMinLow,0);
      int digits = MarketInfo (symbol,MODE_DIGITS);
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}




collegamento video https://www.youtube.com/watch?v=k9Zo0SgrMCA
 
Deniskaaa:
È possibile collegare tre grafici con diversi timeframe nell'EA? Sulla base delle letture degli indicatori nei due grafici, si cerca un luogo e una coppia di valute in cui entrare, e sulla base dell'ultimo terzo grafico, si calcolano un'entrata, uno stop e un profitto, e si apre una posizione per entrare. È tecnicamente possibile? O è necessario creare un EA specifico per un certo timeframe per lavorare in un grafico? Non dovremmo solo contare le letture di barre, ticks o candele da grafici di diversi timeframes, ma analizzare le letture di almeno due indicatori e aprire un ordine basato sul terzo.
Tutto è possibile! Vedere la documentazione o l'aiuto in MetaEditor!
 
pycha:

Ciao, stavo scrivendo una funzione per rilevare i flytag e mi sono bloccato in qualcosa che non capisco. l'istruzione if non funziona. forse ho scritto qualcosa di sbagliato da qualche parte, voglio che tu dia un'occhiata fresca, perché non capisco perché. ho anche registrato un video dal debugger, mostrando che i valori sono uguali, ma non funziona. per favore metti il mio cervello al posto di))))


codice:

bool  checkLine(double highLine , double lowLine, double &arrayMinLow[][5] )
{
      int size = ArrayRange(arrayMinLow,0);
      int digits = MarketInfo (symbol,MODE_DIGITS);
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}





Usa il tasto SRC per incollare il codice, non l'immagine! Chiedete consiglio all'autore di questa idea e del video!