[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 297

 
hoz:


Non c'è un ideale! Guardo solo le persone che scrivono, per così dire, per avere una visione generale. A volte trovo dei trucchi che potrei adottare. A volte vedo che il codice non è affatto leggibile. Come quella di tarasBY, per esempio. Per quanto mi sforzi, non può essere letto. Posso leggere in segmenti chiari e poi bam! Non riesco a capire più nulla. E così in molti luoghi.

Sono un amico che mi ha chiesto di decompilare, ed è più facile capire lì che i codici di tarasBY. Forse è abbastanza normale, ma dubito che molti scaricatori li capiscano. Chi è troppo intelligente per capirli, non li scaricherà... Allora la domanda sorge spontanea: perché postarli lì :)

Anch'io non uso niente di lui! Perché cercare di fare qualcosa alla cieca, è necessario rendere tutto chiaro, per cosa. E la pubblicazione è per la pubblicità, e se tutto è chiaro, la scaricheranno e non ordineranno nulla.
 
tara:
Misuro il mio tempo secondo il tempo medio di Greenwich.
Il mio tempo è un'ora in meno di quello del server e vivo ancora in Europa centrale. E dovresti avere tre ore in più se il server è GMT. Vado a letto. Buona notte senza esplosioni!
 

Ora sto dormendo. Buona notte.

Cosa si dice in Catalogna?

 
Buenas noches! Pero ahora ya es madrugada! Ma è notte fonda!
 
GaryKa:
Per niente
Sì, è il rapporto di due logaritmi naturali. Ora guardate la formula di "Sostituzione della base del logaritmo". Quindi il risultato è che questa espressione
è equivalente al logaritmo decimale per bd_LOTSTEP. In MQL non c'è una funzione separata per il logaritmo decimale, quindi si usa questa conversione.


Questo è quello che stavo dicendo. Il codice della mia lingua... Penso che o il programmatore non ha paura della matematica o è una sorta di protezione dalla lettura del codice (scherzo). Non so, la mia opinione personale è che la matematica semplifica l'algoritmo proprio come switch...case invece di if.
 
rigonich:

Mostra SetVLine();
 
Ciao, ho cercato di capire come inserire indicatori personalizzati in EA. compilato bene, ma scrive assolutamente

dati sbagliati, si prega di indicare dove l'errore è.




Inserisco tutto il codice, tranne il "copyright"

extern int PeriodP=12;
extern int TimeFrame=0;
double P_up0,P_up1,FrApPrise;
//+------------------------------------------------------------------+
//| funzione di inizializzazione esperto |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit() xml-ph-0016@deepl.in
}
//+------------------------------------------------------------------+
//|funzione di avvio esperto |
//+------------------------------------------------------------------+
int start()
{
//----

P_up0=iCustom(Symbol(),Period(), "Price channel",PeriodP,0,0)
P_up1=iCustom(Symbol(),Period(), "rezerv-xrust",FrApPrise,0,0);
{Comment("show price channel=",P_up0,"\n", "show xrust=",P_up1);}
//----
return(0);
}



usato due indicatori

1)https://www.mql5.com/it/code/8908

Price channel.mq4

2)https://www.mql5.com/ru/code/8318

Fractal_Level_Xrust_V2.mq4

per favore aiuta, perché 1 mostra e l'altro non vuole?
 
gyfto:

Questo è quello che stavo dicendo. Condizionale la mia lingua... Penso che o il programmatore non ha paura della matematica o è una sorta di protezione dalla lettura del codice (scherzo). Non so, la mia opinione personale è che la matematica semplifica l'algoritmo proprio come switch...case invece di if.

C'è un difetto in questo codice. Qui, tolto dal contesto:


Il punto è che l'espressione

MathCeil(MathAbs(MathLog( 0.25 )/MathLog(10))) = 1

Quindi il valore del lotto è arrotondato a una cifra decimale.


Continuate a leggere, però, forse vi aiuterà.

 

Una piccola aggiunta alla descrizione della mia domanda: ho rifatto l'indicatore crunch, ecco il codice

#proprietà copyright "#Copyright © 2008, XrustSolution.#"
#proprietà link "#xrust.ucoz.net#"

#proprietà indicator_chart_window
extern int TimeFrame=0;//se=0, allora quello corrente


extern string FrApNam="Ap";//nome della linea corrispondente al frattale verso l'alto.
extern string FrDnNam="Dn";//nome della linea corrispondente al frattale verso il basso

//-----------------------------------------------------------------------------+
doppio FrPrise;
doppio FrApPrise=0,FrDnPrise=0;

//+----------------------------------------------------------------------------+
void init(){

if(TimeFrame==0){TimeFrame=Period();}
IndicatorShortName("Factal_Level_Xrust "+TimeFrame);
FrApNam=StringaConcatenata(FrApNam,TimeFrame);
FrDnNam=StringaConcatenata(FrDnNam,TimeFrame);
return;}
void deinit(){
ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Commento(" ");
return;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
limite int;
doppio tmp;
int i, j, k;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//-----------------------------------------------------------------------------+

LineAp();
LineDn();
stringa FAP=DoubleToStr((FrApPrise),Digits);
string FDP=DoubleToStr((FrDnPrise),Digits);
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
{Commento("TimeFrame="+TimeFrame+
"\nApPrise111 ="+FAP+
"\nDnPrise ="+FDP+
"Canale frattale ="
+diap+"Punto");}

ritorno(0);
}
//-----------------------------------------------------------------------------+
// cerca la linea orizzontale per nome, ridisegna se il prezzo è cambiato |
//-----------------------------------------------------------------------------+
void LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Commento(FrPrise);
se(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
// cerca una linea orizzontale per nome, ridisegna se il prezzo è cambiato |
//-----------------------------------------------------------------------------+
void LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
se(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
//Kim Rispetto e rispetto !!! |
//+----------------------------------------------------------------------------+
//| Autore: Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Versione : 07.10.2006 |
//| Descrizione: Cerca il frattale più vicino. Restituisce il livello dei prezzi. |
//+----------------------------------------------------------------------------+
//| Parametri: |
//| sy - nome dello strumento ("" o NULL - simbolo corrente) |
//| tf - timeframe ( 0 - TF corrente) |
//| modo - tipo di frattale (MODE_LOWER|MODE_UPPER) |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy=="" || sy=="0") sy=Symbol();
doppio f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY"<0) d=4; altrimenti d=2;

per (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s);
se (f!=0) return(NormalizeDouble(f, d))
}
Print("FindNearFractal(): frattale non trovato");
ritorno(0);
}

Non ho bisogno di linee sul grafico, ho solo bisogno di due numeri (uno da ciascuno di questi indicatori di spirito).

 
palomnik:

Una piccola aggiunta alla descrizione della mia domanda.Rielaborato l'indicatore crunch.Ecco il codice

Se vuoi una risposta, abbi un po' di rispetto per le persone che leggono i tuoi scarabocchi.

Il codice dovrebbe essere inserito usando il pulsante SRC - è sopra la casella di modifica del tuo post tra gli altri strumenti di formattazione.