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

 
0x è esattamente il numero di 16 cifre.
 
Buongiorno! La condizione non funziona
bool CCInapravlenie=false;
if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;

if(CCInapravlenie){ imja = DoubleToStr(Time[0], 0); 
ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iLow(NULL,0,0)-0.0001);ObjectSet(imja, OBJPROP_ARROWCODE, 241);
ObjectSet(imja, OBJPROP_COLOR , Yellow); // стрелка жолтая 
}//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Ho già guardato la stringa ife, l'ho guardata, l'ho guardata, l'ho guardata, l'ho guardata.... Ci deve essere una ragione, posso essere confuso e non vedere qualcosa di semplice ed elementare, succede.

Ho guardato la mattina. Sono uscito. Sono tornato e ho cercato di nuovo. È più facile ora, se, più, meno... Non lo capisco affatto.



E questo è sotto il mio inizio.
double EMA_10 = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
double EMA_20 = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 0);
double LMA_100 =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 0);
double МА_30 = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 0);
double CCI_50 = iCCI( NULL, 0, 50, PRICE_CLOSE, 0);

double EMA_10S = iMA( NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
double EMA_20S = iMA( NULL , 0, 20, 0, MODE_EMA, PRICE_CLOSE, 1);
double LMA_100S =iMA( NULL , 0, 100, 0, MODE_LWMA, PRICE_CLOSE, 1);
double МА_30S = iMA( NULL , 0, 30, 0, MODE_SMA, PRICE_CLOSE, 1);
double CCI_50S = iCCI( NULL, 0, 50, PRICE_CLOSE, 1);


p.s. Fa tutto parte di questa condizione strategica

EMA - periodo 10 incrocia dall'alto in basso EMA - periodo 200, CCI incrocia 0,100 o 100 dall'alto in basso; la candela chiude o è sotto LMA - periodo 100
 
TheXpert:
0x è esattamente il numero di 16 cifre.

Grazie.
 

Nessuna freccia gialla. Il diavolo lo sa. E anche se la condizione di zirk funziona!!!!

Condizione di Zirk.

bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;
  if(napravlenieCCI){  string imja = DoubleToStr(Time[0], 0);
  ObjectCreate(imja, 22, 0, iTime(NULL,0,0),iHigh(NULL,0,0)+0.0004); 
  ObjectSet(imja, OBJPROP_ARROWCODE, 242);
  Print(" ObjectSet242  ", GetLastError());
  ObjectSet(imja, OBJPROP_COLOR , Red);Print(" сOBJPROP_COLO  ", GetLastError());}

Screenshot

 
TarasBY:

Non si riempie l'indice 0 degli array di indicatori,

si riferisce ad esso:

È un po' (strutturalmente) storto, ma va bene per la prima volta. Il mio consiglio: "Abituatevi subito ad approcci corretti alla scrittura del codice. Per esempio, usate questa condizione nel vostro codice:

È analfabeta, perché prima o poi, lascerete il tester al trading online e diversi EAs potrebbero girare in parallelo e questo codice non funzionerà.


Grazie per la vostra risposta!

Lo saprò. Dovresti studiare di più gli array.

Ho scritto la condizione "Total==0" solo per verificare rapidamente la mia idea nella pratica. Ora guarderò nella Code Base e cercherò di trovare qualcosa di simile per risolvere questa condizione.

Sono assolutamente d'accordo con te, devi imparare a scrivere correttamente il codice. Mi correggo.

Grazie mille per il vostro aiuto.



 
Vinin:

Cosa non vi piace di iHighest() e iLowest()?


Non sapevo di queste funzioni. Ora li proverò.

Grazie per le informazioni!

 
TheXpert:
0x è esattamente il numero di 16 cifre.

L'esadecimale si riferisce a entrambi. Ad esempio 0x0000 in C, 0000H negli assemblatori.
 

Salve.

Potete dirmi come posso aggiungere le informazioni che ricevo al file? Cioè ottengo un numero, deve essere scritto nel file - alla fine del file senza cancellare tutto il suo contenuto.

Sembra FileWriteString ma per qualche motivo viene scritto nel vuoto invece di quello che c'è... qualcuno può darmi un esempio di come farlo correttamente?

... Inoltre, la registrazione è fatta, se è fatta, in una codifica incomprensibile che è illeggibile -((

Grazie.

 
TarasBY:

Non si riempie l'indice 0 degli array di indicatori,

si riferisce ad esso:

È un po' (strutturalmente) storto, ma va bene per la prima volta. Il mio consiglio: "Abituatevi subito ad approcci corretti alla scrittura del codice. Per esempio, usate questa condizione nel vostro codice:

Perché prima o poi, lascerete lo Strategy Tester e passerete al trading online, dove diversi EA sono in esecuzione in parallelo e questo codice non funzionerà.


Per quanto ho capito, devo rifarlo in questo modo:

double L_1= iCustom(NULL,0,"Go_go",K,0,1);  //Линия минимума
double L_2= iCustom(NULL,0,"Go_go",K,1,1);  //Линия максимума 

Di nuovo lo stesso problema. Quando lancio l'Expert Advisor, apre subito un ordine SELL.

Può spiegare perché?

 
Pacman:


Per quanto ho capito ho bisogno di rifarlo così:

Di nuovo lo stesso problema. Quando eseguo l'Expert Advisor, apre immediatamente un ordine SELL.

Può spiegare perché?

Sostituire:

  double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
  double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

A:

  double L_1= Low[iLowest (NULL, 0, MODE_LOW, K, 1)];;    //Значение минимума
  double L_2= High[iHighest (NULL, 0, MODE_HIGH, K, 1)];;  //Значение максимума 

E perché si apre un ordine SELL (nella tua versione) (in base a quello che ho detto prima), trova tu stesso la risposta!!!