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

 
Elektronik:

Tutto è già stato fatto per voi e funziona bene

KimIV01.11.2006 18:49

Raccomando il mio codice provato e testato



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


Grazie per la risposta, ma vorrei sapere perché non funziona per me:)
 
hoz:

La documentazione dice che la funzione SetIndexEmptyValue è usata per specificare un valore "vuoto". Cioè, specifichiamo a quale valore non abbiamo bisogno di disegnare nulla. È molto conveniente nel nostro caso in quanto i segnali non si verificano su ogni barra. Funziona come segue. Quando non è necessario disegnare la freccia sulla barra corrente, si assegna un valore "vuoto" alla voce appropriata del buffer di dati, nel nostro caso 0.

Qualcosa che non capisco. Se qualcosa è disegnato dal segnale, non sarà disegnato senza il segnale. Allora qual è lo scopo di questa funzione in generale?


È consuetudine che il computer indichi esplicitamente che non c'è alcun valore. Allora non sembra essere affatto zero. Immaginate di disegnare un buffer - qui ha il valore 1.2903, 1.2905, 1.2904... E poi improvvisamente è 0. In queste nebbie le linee indicatrici dovranno improvvisamente tuffarsi sotto la finestra!!!
 
hoz:

La documentazione dice che la funzione SetIndexEmptyValue è usata per specificare un valore "vuoto". Cioè, specifichiamo a quale valore non abbiamo bisogno di disegnare nulla. È molto conveniente nel nostro caso in quanto i segnali non si verificano su ogni barra. Funziona come segue. Quando non avete bisogno di disegnare la freccia sulla barra corrente, assegnate un valore "vuoto" alla voce appropriata del buffer di dati, nel nostro caso 0.

Qualcosa che non capisco. Se qualcosa è disegnato dal segnale, non sarà disegnato senza il segnale. Allora qual è lo scopo di questa funzione in generale?

Questa funzione riempie l'array (in questo caso, il buffer degli indicatori) con un valore vuoto EMPTY_VALUE = 0x7FFFFFFFFFF.
 
drknn:


In realtà, c'è un tipo speciale di variabile nel linguaggio - il colore è chiamato. Per esempio:

doppio Velichina;

MyLine;

Velichina=2,569;

MyLine=Rosso;


Io l'avevo così.
  OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, 00 FF33);  }
           
Cosa dovrebbe fare, scriverci il colore?
 
Dimka-novitsek:

Io l'avevo così Cosa dovrebbe scrivere lì, un colore speciale, o cosa?

No, puoi scrivere semplicemente Red invece di 00FF33, o qualsiasi colore della tabella dei colori del web - apri questo link - ci sono abbastanza colori per non usare il codice esadecimale.
 
Robot
//+------------------------------------------------------------------+
//|                                                     советник.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);
  }
//+------------------------------------------------------------------+
È un posto
 double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
 double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);

Lo strela2 non funziona, il suo valore è -1. Compito se la freccia è in alto, ordine di acquisto e viceversa. O forse non lo scrivo affatto bene!!!

Stousando questoiCustom per la prima volta. Ècorretto confrontare strela1 e strela2 inquesto modo? Che tipo di valori ottengo - voglio dire, capisco che è

il primo e il secondo buffer, ma non più di questo.

Con cosa disegna le frecce?

 

Indicatore

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

Con cosa disegna le frecce, comunque?

 

Cosa significa la parola "tralit"?

La citazione recita per intero così:

<Advisor utilizza i segnali dell'indicatore"Alligator" per gli ingressi, sposta la posizione al Breakeven e pesca a strascico con un passo impostato.

 
Non capisco! Un tizio mi ha mandato un indicatore per posta. Da dove l'ha decompilato? Sì, ho visto indicatori abbastanza simili più di una volta. Per favore, rimetteteli al loro posto!
 
Sì, ci ho visto una linea.