
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
mish
Ho avuto un momento di tempo libero e ho cercato di catturare la tua intenzione come l'ho capita.
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
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"?
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.