Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 236
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
... tutte le coppie di valute in cui è presente il dollaro...
Non c'è un calcolo del"margine utilizzato dai fondi di trading" nel codice ... e alla fine del mio primo post ho notato che "cambiare il tipo di valuta di deposito nel tester non risolve il problema".
Non c'è un calcolo del"margine utilizzato dai fondi di trading" nel codice ... e alla fine del mio primo post ho notato che "cambiare il tipo di valuta del deposito nel tester non risolve il problema".
Allora i miei poteri telepatici sono finiti - stendi il codice.
Scusa per la domanda, so come inserire un indicatore esterno in un EA usando un buffer... Ma non c'è alcun buffer in questo indicatore, come faccio a ottenere il prezzo superiore e inferiore.
//+------------------------------------------------------------------+
//| trendlinesDay.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "nsi2000"
#property link "http://www.expert-mt4.nm.ru"
//----
#property indicator_chart_window
//---- input parameters
extern int nPeriod=10;
extern int Limit=350;
double Up[];
double Dn[];
///---- int Widners Oscilator
int cnt,nCurBar=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- Output in Char
for(cnt=0; cnt<=5; cnt++)
{
ObjectCreate("WSO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WSO-"+cnt,OBJPROP_COLOR,Red);
if(cnt<5)
{
ObjectCreate("Trend DN-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend DN-"+cnt,OBJPROP_COLOR,Magenta);
}
//----
ObjectCreate("WRO-"+cnt,OBJ_HLINE,0,0,0);
ObjectSet("WRO-"+cnt,OBJPROP_COLOR,Blue);
if(cnt<5)
{
ObjectCreate("Trend UP-"+cnt,OBJ_TREND,0,0,0,0,0);
ObjectSet("Trend Up-"+cnt,OBJPROP_COLOR,Aqua);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
for(cnt=0; cnt<=5; cnt++)
{
ObjectDelete("Trend UP-"+cnt);
ObjectDelete("Trend DN-"+cnt);
ObjectDelete("WSO-"+cnt);
ObjectDelete("WRO-"+cnt);
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//---- TODO: add your code here
double r1,r2,r3,r4,r5,r6;
int rt1,rt2,rt3,rt4,rt5,rt6;
double s1,s2,s3,s4,s5,s6;
int st1,st2,st3,st4,st5,st6;
//---- Линии сопротивления и поддержки
if(Bars<Limit) Limit=Bars-nPeriod;
for(nCurBar=Limit; nCurBar>0; nCurBar--)
{
if(Low[nCurBar+(nPeriod-1)/2]==Low[Lowest(NULL,0,MODE_LOW,nPeriod,nCurBar)])
{
s6=s5; s5=s4; s4=s3; s3=s2; s2=s1; s1=Low[nCurBar+(nPeriod-1)/2];
st6=st5; st5=st4; st4=st3; st3=st2; st2=st1; st1=nCurBar+(nPeriod-1)/2;
}
if(High[nCurBar+(nPeriod-1)/2]==High[Highest(NULL,0,MODE_HIGH,nPeriod,nCurBar)])
{
r6=r5; r5=r4; r4=r3; r3=r2; r2=r1; r1=High[nCurBar+(nPeriod-1)/2];
rt6=rt5; rt5=rt4; rt4=rt3; rt3=rt2; rt2=rt1; rt1=nCurBar+(nPeriod-1)/2;
}
}
//---- Move Object in Chart
ObjectMove("Trend DN-0",1,Time[st1],s1);
ObjectMove("Trend DN-0",0,Time[st2],s2);
//----
ObjectMove("Trend UP-0",1,Time[rt1],r1);
ObjectMove("Trend UP-0",0,Time[rt2],r2);
//----
return(0);
}
//+------------------------------------------------------------------+
Scusa per la domanda, so come inserire un indicatore esterno in un EA usando un buffer... In questo indicatore non c'è un buffer, come faccio a ottenere il prezzo superiore e inferiore
Prendere oggetti grafici sul grafico con i nomi "Trend DN-0", "Trend UP-0" (quelle linee che indicano alcuni livelli dell'indicatore) e leggere da esse i dati desiderati
sul grafico prendere oggetti grafici con i nomi "Trend DN-0", "Trend UP-0" (quelle linee con cui l'indicatore segna alcuni livelli) e leggere i dati necessari da esse
per favore scrivi come fare questo nell'indicatore stesso? e poi fare 2 buffer da questi valori per usarli nell'EA?
Scrivere in quale luogo prendere il prezzo?
per favore scrivi come fare questo nell'indicatore stesso? e poi fare 2 buffer da questi valori per usarli nell'EA?
scrivere in quale posto prendere il prezzo?
L'indicatore ha già tutti i dati per calcolare due buffer e disegnarli.
E tu non hai proposto di cambiare l'indicatore, ma di leggere i dati delle linee disegnate dall'indicatore dall'Expert Advisor.
Tuttavia, questo impone delle restrizioni sull'uso del tester - solo in modalità visiva potrai testare l'Expert Advisor.
L'indicatore ha già tutti i dati per calcolare i due buffer e disegnarli.
E non ti è stato suggerito di cambiare l'indicatore, ma di leggere i dati delle linee disegnate dall'indicatore dall'Expert Advisor.
Tuttavia, questo impone delle limitazioni all'uso del tester - sarai in grado di testare l'Expert Advisor solo in modalità visiva.
Significa che dovrei scrivere nell'indicatore
#proprietà indicator_buffers 2
doppio BufferUp[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
E poi esattamente con cosa devo collegare questi 2 buffer?
Quindi devo scrivere nell'indicatore
#proprietà indicator_buffers 2
doppio BufferUp[], BufferDn[];
int OnInit()
{
SetIndexBuffer(0, BufferUp)
SetIndexBuffer(1, BufferDn)
}
E poi esattamente con cosa devo collegare questi 2 buffer?
Guarda: hai delle linee che si muovono nel tuo codice:
Time[st1], Time[st2] e il prezzo di questi punti di riferimento s1, s2 sono per una linea,
Time[rt1], Time[rt2], r1, r2 - per un'altra linea.
Usando l'equazione della linea puoi calcolare il valore del buffer per ogni barra tra questi punti e scrivere questo valore nel buffer.
Vedi: hai linee che si muovono nel tuo codice:
Abbiamo Time[st1], Time[st2] e il prezzo di questi punti s1, s2 - per una linea,
Time[rt1], Time[rt2], r1, r2 - per un'altra linea.
Usando l'equazione della linea puoi calcolare il valore del buffer per ogni barra tra questi punti e scrivere questo valore nel buffer.
quindi non si può prendere il prezzo della linea sopra la barra... Non so come calcolare l'equazione della linea retta, se possibile, scrivete come dovrebbe essere il tutto.
E, in generale, il valore non dovrebbe essere preso tra i punti, ma sopra 0 o 1 bar