Come codificare? - pagina 39

 

mish

Ho avuto un momento di tempo libero e ho cercato di catturare la tua intenzione come l'ho capita.

File:
advicerr.txt  2 kb
 

Grazie

Grazie ralph.ronnquist

queste funzioni sono esattamente ciò di cui ho bisogno e sarebbero utili ad altri che cercano la stessa funzione

Sono stato catturato altrimenti ti avrei ringraziato prima soprattutto perché ha richiesto uno sforzo

C'è un modo semplice per cambiare la funzione per lavorare in strategy tester? So che i risultati di lavorare con una sola valuta nel tester è quasi inutile, ma imita molto approssimativamente ciò di cui ho bisogno per ottenere la matematica giusta, qualsiasi aiuto è apprezzato e non avrei mai elaborato il codice in breve tempo quindi ancora una volta grazie!

 

EA basato su DT_ZZ.mq4

Ho un po' di problemi con questo.

Ho l'indicatore DT_ZZ.mq4 e da quello che vedo è molto promettente. So che questo indicatore ridisegna ed ecco come lo vedo funzionare.

Se una freccia e una sezione sono uguali, allora aspetta la chiusura della barra e poi compra/vendi di conseguenza.

Qualcuno pensa di poter aiutare con questo? (Il codice è postato qui sotto)

//+------------------------------------------------------------------+

//| DT_ZZ.mq4 |

//+------------------------------------------------------------------+

// ottimizzato da Rosh

#proprietà indicator_chart_window

#proprietà indicator_buffers 3

#proprietà indicatore_colore1 Verde

#Proprietà indicatore_colore2 Blu

#proprietà indicatore_colore3 Rosso

//---- parametri dell'indicatore

extern int ExtDepth=12;

extern int calculateLevel=2;

//---- buffer dell'indicatore

double zzL[]

double zzH[]

double zz[];

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

int init()

{

// IndicatorBuffers(3);

//---- impostazioni di disegno

SetIndexStyle(0,DRAW_SECTION);

SetIndexStyle(1,DRAW_ARROW);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(1,159);

SetIndexArrow(2,159);

//---- mappatura dei buffer degli indicatori

SetIndexBuffer(0,zz);

SetIndexBuffer(1,zzH);

SetIndexBuffer(2,zzL);

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexEmptyValue(2,0.0);

//---- nome breve dell'indicatore

IndicatoreNomeCorto("DT_ZZ("+ExtDepth+")");

//---- inizializzazione fatta

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;

doppio curlow, curhigh, lasthigh, lastlow;

doppio min, max;

int counted_bars=IndicatorCounted();

se (counted_bars==0)

{

ArrayInitialize(zz,0.0);

ArrayInitialize(zzL,0.0);

ArrayInitialize(zzH,0.0);

lasthighpos=Bars; lastlowpos=Bars;

lastlow=Low;lasthigh=High;

Print("limit=",Bars-ExtDepth);

for(shift=Bars-ExtDepth; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

else

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

se (zzL==0.0) continua;

if (zzL<min) { min=zzL; pos=i; }

zz=0.0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- alto

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

else

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

se (zzH==0.0) continua;

if (zzH>max) { max=zzH; pos=i; }

zz=0.0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

zz[0]=Close[0];

}

//----------------------------------------------------------------------

}

else

{

int pos2;

i=0;

while (pos2<calculateLevel && i<Bars-1)

{

if (zz!=0 && (zzH!=0||zzL!=0)) pos2++;

i++;

}

pos2=i-1;

for (i=pos2-1;i>=0;i--)

{

zzH=0;

zzL=0;

zz=0;

}

se (zzH[pos2]!=0)

{

lasthighpos=pos2;

lasthigh=High[pos2];

lastlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,pos2);

lastlow=Low[lastlowpos];

}

else

{

lastlowpos=pos2;

lastlow=Low[pos2];

lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2);

lasthigh=High[lasthighpos];

}

//------------------------- ????????? ??????

Stampa("limit=",pos2-1);

for(shift=pos2-1; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

else

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

se (zzL==0.0) continua;

if (zzL<min) { min=zzL; pos=i; }

zz=0.0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- alto

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

else

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

se (zzH==0.0) continua;

if (zzH>max) { max=zzH; pos=i; }

zz=0.0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

}

//------------------------- ????????? ??????

zz[0]=Close[0];

}

return(0);

}

//+------------------------------------------------------------------+
 

questo può essere alterato 4 strategy tester?

ralph.ronnquist

mi ha fornito generosamente una grande funzione che molti possono beneficiare che richiedono il suo uso.

Il mio problema è perché sono così pessimo attualmente alla programmazione che non posso sembrare di alterarla abbastanza 4 tester di strategia.

Per scopi di test solo una valuta è soddisfacente solo per lavorare fuori la matematica dei mestieri in diverse circostanze con diverse valute.

È possibile modificare il lavoro di Ralph per soddisfare questa necessità.

Grazie

File:
ralph.txt  2 kb
 

In linea di principio avresti solo bisogno di cambiare la stringa "EURCHF" in "EURUSD". Cioè, per lavorare con long "EURUSD" contro short "EURUSD".

 

Ho provato

Grazie per la tua risposta, ma ho provato senza successo. Il codice che hai fornito ha insegnato molto a me e alla mia ragazza su quanto poco sappiamo di programmazione!

Grazie mille!

 

Hmm. L'unica "cattiveria" che posso vedere a priori è il test "v == cut", che confronta due numeri doppi per l'uguaglianza. Forse funziona meglio guardare solo gli importi $ completi, e quindi cambiare "euprofit", "ecprofit", "cut" e "v" per essere di tipo "int"?

 
NTrader:
Domanda banale: Sto scrivendo un nuovo indicatore personale per la prima volta. Non riesco a visualizzare i miei log che faccio con il comando Print ("...") nel metodo start{}. Dove posso visualizzarli su MetaTrader 4?

Ok, uso il comando Comment().

 

Dumbo qui

Ciao a tutti

Questo è un grande thread per qualcuno come me che non sa nulla di programmazione. Ha molte informazioni utili e molti piccoli pezzi di codice che potrei copiare e giocare.

Spero che qualcuno possa aiutarmi con questo pezzo: voglio fare un EA basato sul prezzo. Cosa devo inserire nel codice per dire quanto segue:

1) Voglio che l'EA guardi il prezzo alle 20:00 sul grafico orario e veda qual è la sua relazione con la 100sma.

2) Se il prezzo è sopra la 100sma, voglio che apra 2 ordini di acquisto a certi livelli.

3) Questi livelli sono basati sul prezzo di chiusura della candela delle 16:00, quindi se la candela delle 16:00 è 1,2000, voglio che apra un acquisto a 1,1120 e 1,2080

Ho gli stop, i trailing stop e i livelli di profitto, tutti i codici presi da questo sito. Quindi ringrazio coloro che li hanno postati. I

Sarò per sempre in debito se qualcuno può aiutarmi qui.

Cordiali saluti

Susan

 

Aiuto

Ciao a tutti

Ho provato a creare un EA e ho ricevuto il seguente messaggio di errore

'\fine_del_programma' - parentesi finale '}' attesa C:\...\My_First_EA.mq4(96,1)

Ho fatto doppio clic, ho raggiunto la linea, poi l'ho controllata con le parentesi finali di apertura prima di essa, e ancora non so dove ho sbagliato.

Questo è il secondo EA che ho provato, con lo stesso messaggio di errore, basato sullo stesso indicatore.

Grazie.

Motivazione: