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

 
artmedia70:
Mostra tutto il codice


Il fatto è che se si rimuove il confronto MA, funziona!

Se lo ricolleghi, NON funziona affatto!

int Stoch_1,Stoch_2,Ma_1,Ma_2;


int start()
  {
Ma_1=iMA(NULL,PERIOD_M5,5,0,MODE_LWMA,PRICE_CLOSE,1) ;
Ma_2=iMA(NULL,PERIOD_M5,15,0,MODE_LWMA,PRICE_CLOSE,1) ; 

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
Print (Ma_1,"___",Ma_2);  // печатает 134 (GBPJPY)

if ( Hour()>10 && Hour()<20) 
 {
  if ( Ma_1 > Ma_2)       // если убрать строку- работает. Оставить - не работает       
      {
                      

//               if (Stoch_1>Stoch_2)


 { SetVLine(Blue, "", 0, 0, 1);} 
 
}}
     
     
  if ( Hour()>10 && Hour()<20) 
   {
  if ( Ma_1<Ma_2)       // если убрать строку- работает. Оставить - не работает    
     {
                               
 
 // if (Stoch_1<Stoch_2)                      
 

              {SetVLine(Red, "", 0, 0, 1);} 
  
  
}  }

} return(0); //}
//---------------------------
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_STYLE, st);
  ObjectSet(nm, OBJPROP_WIDTH, wd);
  }
 
artmedia70:

MA_1 e MA_2 devono essere di tipo doppio.

Qual è il tuo tipo?


"Ma sono sempre stata la regina di cuori" (c) "12 Chairs"

e li ho sempre messi in int

 
rigonich:
Sì, come ti è stato detto sopra, se le variabili sono di tipo int daranno 1 per gli euras, perché convertendo1.3075 in tipo int si ottiene 1, e probabilmente stai stampando le tue variabili, non i valori delle medie.


gbkznm.... che vergogna!!! esattamente! int è un numero INTERO e double è una virgola mobile....

vergogna!

 
lottamer:

e li ho sempre infilati nell'int

Sono pieno di conoscenza! :)))
 

TUTTO SEMBRA FUNZIONARE!!!

GRAZIE MILLE!!!

Pensavo fosse finita .... :))))))

 
TarasBY:
Conoscenza - pantaloni pieni! :)))


Io mi sono pentito......
 
lottamer:


"Ma sono sempre stata la regina di cuori" (c) "12 Chairs"

e li ho sempre avuti nell'int


Le variabili di tipo int sono interi, e quando le impostate su un numero con una parte frazionaria, il numero viene prima arrotondato al numero intero più vicino, e poi il valore di quel numero viene impostato su una variabile int.
 
Se metti una variabile doppia in una int, so cosa succederà. E se facciamo l'operazione inversa? int todouble non sarà peggio, vero?
 

Insegnami, per l'amor di Dio, come lavorare con i commenti:

1. se un commento è già stato fatto, o si sta facendo, come posso non incollarlo, ma continuare a fare un altro commento, se, per esempio, la domanda ha già ricevuto una risposta?

2. se si inserisce un codice, come si fa ad inserire del testo semplice dopo averlo inserito? Enter continua a inserire il testo come codice.

3. quando si copia, alcune cose si inseriscono di default, per esempio quando si copia dalla guida, il copiato viene inserito come un link.Come posso incollare il copiato come testo semplice?

 
lottamer:
Se metti una variabile doppia in una int, so cosa succederà. Ma cosa succede se si fa l'operazione inversa? int todouble non peggiorerà la situazione, vero?
Una variabile può essere collocata solo in un certo posto nella memoria del computer, che ha il suo indirizzo e la sua dimensione.Quello di cui stai parlando si chiama assegnare a una variabile di tipo double il valore di un numero di tipo int.Questo è possibile, il valore di questa variabilesarà rappresentato come un numero di tipo double con una parte frazionaria uguale a 0