[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 141

[Deleted]  

Ecco, ha funzionato. Sembra essere perché ho impostato un buffer.

#proprietà indicator_buffers 1

 

Hai fatto tutto correttamente, l'ho controllato - esce come dovrebbe (posso darti uno screenshot).

Ho appena aggiunto sopra

#property  indicator_separate_window
#property  indicator_buffers 2
 

Помогите, плиз!!!

double Lots_simb[3];


if(( Lots_simb[0]*2)< Lots_simb[2]) // почему истина ?
{

Print("Lots_simb[0]*2=", Lots_simb[0]*2,"Lots_simb[2]=", Lots_simb[2]);
Open_Buy_otl( symb[0],( Lots_simb[2]/2- Lots_simb[0]));

return;

}

2009.07.10 06:57:09 newseason GBPJPY, M30: Lots_simb[0]*2=8.4  Lots_simb[2]=8.4
 
Signori della conoscenza, quando il log del tester dice "Funzione non consentita in modalità test" come faccio a sapere quale funzione non è consentita?
 
Dimoncheg писал(а) >>
Signori, quando il giornale nel tester dice "La funzione non è consentita in modalità test" come faccio a sapere quale funzione non è consentita?

Caratteristiche e limiti delle strategie di trading di prova in MetaTrader 4'.

[Deleted]  

Ciao, ho davvero bisogno di aiuto! Voglio fare un EA basato su un indicatore. All'inizio, come in ogni indicatore, ci sono queste linee:

SetIndexBuffer(0,ExtBullBuffer);
SetIndexBuffer(1,ExtBull1Buffer);
SetIndexBuffer(2,ExtBull2Buffer);
SetIndexBuffer(3,ExtBull3Buffer);
SetIndexBuffer(4,ExtBull4Buffer);
SetIndexBuffer(5,ExtBull5Buffer);
SetIndexBuffer(6,ExtBull6Buffer);
SetIndexBuffer(7,ExtBull7Buffer);
Poi arriva il corpo del programma (int start()...) dove vengono calcolate le variabili ExtBullBuffer... Voglio fare un EA, quindi non ho bisogno di SetIndexBuffer, ma se lo rimuovo, durante i test le variabili ExtBullBuffer non vengono calcolate (per tutti i timeframe di test, per tutti i timeframe genera 0, anche se non è vero)... Potete consigliarmi cosa fare? Grazie.

 
Levchik >> :

Ciao, ho davvero bisogno di aiuto! Voglio fare un EA basato su un indicatore. All'inizio, come in ogni indicatore, ci sono queste linee:

SetIndexBuffer(0,ExtBullBuffer);
Poi arriva il corpo del programma (int start()...), che calcola le variabili ExtBullBuffer... Voglio fare un EA, quindi non ho bisogno di SetIndexBuffer, ma se lo rimuovo, durante i test le variabili ExtBullBuffer non vengono calcolate (per tutti i timeframe di test, per tutti i timeframe genera 0, anche se non è vero)... Potete consigliarmi cosa fare? >> Grazie.

Nei buffer indicatori, il buffer viene inizializzato automaticamente non appena si dichiara il buffer come indicatore (non ausiliario),

in altri programmi (non indicatori) i buffer devono essere inizializzati con la funzione ArrayResize(ExtBullBuffer,Bars);

(se il buffer non è esplicitamente nominato double ExtBullBuffer[1000]; )

E l'inizializzazione dovrebbe essere fatta nella funzione in cui si suppone di assegnare valori al buffer. Nel vostro caso, in int start().

[Eliminato]  

Ciao a tutti. Potete dirmi come fissare il codice dell'indicatore, in modo che il segnale acustico venga emesso non una volta, ma 10 volte, o come ci sono le induzioni dove il segnale è fino alla prossima candela appare. Cioè, il segnale va tutto il tempo la candela in cui si è verificato. Ho un buon segnale, ma solo una volta... Purtroppo, non riesco a sentirlo di notte(((( Vi ringrazio in anticipo per il vostro feedback.

#proprietà indicator_chart_window
#proprietà indicator_buffers 5
#proprietà indicatore_colore1 Giallo
#proprietà indicator_width1 2
#property indicator_color2 SkyBlue
#proprietà indicator_width2 2
#property indicator_color3 Tomato
#proprietà indicator_width3 2

#property indicator_color4 Blue
#property indicator_color5 Red
#proprietà indicator_width4 1
#proprietà indicator_width5 1

//---- parametri di ingresso
extern int Price = 0; //Applica a Price(0-Close;1-Open;2-High;3-Low;4-Median price;5-Typical price;6-Weighted Close)
extern int Length = 15; //Periodo di NonLagMA
extern inttern Displace = 0; //DispLace o Shift
extern double PctFilter = 0; //Filtro dinamico in decimale
extern string note1 ="accendere il colore: ln=1 ln&dot=2; off=0";
extern int Color = 2; //Commutazione della modalità colore (1-colore)
extern int ColorBarBack = 0; //Ritorno alla barra per la modalità colore
extern double Deviation = 0; //deviazione su/giù
extern string note2 ="turn on = 1; turn off = 0";
extern int AlertMode = 0; //interruttore Alertbox (0-off, 1-on)
extern int WarningMode = 0; //Sound Warning switch(0-off,1-on)
extern int SendEmail = 0;
extern string soundfile = "news.wav";
//---- buffer degli indicatori
doppio MABuffer[];
doppio UpBuffer[];
doppio DnBuffer[];
doppia tendenza[];
doppio Del[];
doppio AvgDel[];
doppio updbuffer[];
doppio dndbuffer[];

doppio alfa[];
int i, Phase, Len, Cycle=4;
doppio Coeff, beta, t, Sum, Weight, g;
doppio pi = 3,1415926535;
bool UpTrendAlert=false, DownTrendAlert=false;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);

SetIndexBuffer(5,trend);
SetIndexBuffer(6,Del);
SetIndexBuffer(7,AvgDel);


SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,updbuffer); SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,159); SetIndexBuffer(4,dndbuffer); SetIndexEmptyValue(4,EMPTY_VALUE);


stringa short_name;
//---- linea di indicazione

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore
short_name="NonLagMA("+Length+")";
IndicatoreNomeCorto(nome_corto);
SetIndexLabel(0, "NonLagMA");
SetIndexLabel(1, "Su");
SetIndexLabel(2, "Dn");
//----
SetIndexShift(0,Displace);
SetIndexShift(1,Displace);
SetIndexShift(2,Displace);
SetIndexShift(3,Displace);
SetIndexShift(4,Displace);

SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexEmptyValue(2,EMPTY_VALUE);

SetIndexDrawBegin(0,Lunghezza*Ciclo+Lunghezza+1);
SetIndexDrawBegin(1,Lunghezza*Ciclo+Lunghezza+1);
SetIndexDrawBegin(2,Lunghezza*Ciclo+Lunghezza+1);
//----

Coeff = 3*pi;
Fase = Lunghezza-1;
Len = Lunghezza*4 + Fase;
ArrayResize(alfa,Len);
Peso=0;

per (i=0;i<Len-1;i++)
{
se (i<=Fase-1) t = 1,0*i/(Fase-1);
else t = 1.0 + (i-Fase+1)*(2.0*Ciclo-1.0)/(Ciclo*Lunghezza-1.0);
beta = MathCos(pi*t);
g = 1,0/(Coeff*t+1);
se (t <= 0,5 ) g = 1;
alfa[i] = g * beta;
Peso += alfa[i];
}

ritorno(0);
}

//+------------------------------------------------------------------+
//| NonLagMA_v7.1 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
prezzo doppio;
se ( counted_bars > 0 ) limit=Bars-counted_bars;
se ( counted_bars < 0 ) return(0);
if ( counted_bars ==0 ) limit=Bars-Len-1;
se ( barre contate < 1 )

for(i=1;i<Lunghezza*Ciclo+Lunghezza;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}

for(shift=limit;shift>=0;shift--)
{
Somma = 0;
per (i=0;i<=Len-1;i++)
{
prezzo = iMA(NULL,0,1,0,3,Price,i+shift);
Somma += alfa[i]*prezzo;

}

se (Peso > 0) MABuffer[shift] = (1.0+Deviazione/100)*Somma/Peso;


se (PctFilter>0)
{
Del[shift] = MathAbs(MABuffer[shift] - MABuffer[shift+1]);

doppio sumdel=0;
for (i=0;i<=Lunghezza-1;i++) sumdel = sumdel+Del[shift+i];
AvgDel[shift] = sumdel/Lunghezza;

doppio sumpow = 0;
for (i=0;i<=Lunghezza-1;i++) sumpow+=MathPow(Del[shift+i]-AvgDel[shift+i],2);
double StdDev = MathSqrt(sumpow/Length);

doppio Filter = PctFilter * StdDev;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter ) MABuffer[shift]=MABuffer[shift+1];
}
else
Filtro=0;

se (Colore>0)
{
trend[shift]=trend[shift+1];
se (MABuffer[shift]-MABuffer[shift+1] > Filter) trend[shift]= 1;
se (MABuffer[shift+1]-MABuffer[shift] > Filter) trend[shift]=-1;

updbuffer[shift] = EMPTY_VALUE; dndbuffer[shift] = EMPTY_VALUE;

se (tendenza[spostamento]>0)
{
UpBuffer[shift] = MABuffer[shift];
se (tendenza[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[shift] = EMPTY_VALUE;
se (tendenza[shift+1]<0&Colore>1) updbuffer[shift]= MABuffer[shift];
}
se (tendenza[shift]<0)
{
DnBuffer[shift] = MABuffer[shift];
se (tendenza[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift] = EMPTY_VALUE;
se (tendenza[shift+1]>0&Colore>1) dndbuffer[shift]= MABuffer[shift];

}
}
}
//----------
stringa Messaggio;

if ( trend[2]<0 && trend[1]>0 && Volume[0]>1 && !UpTrendAlert)
{
Messaggio = ""+Symbol()+" M "+Period()+" NonLagMa Signal for BUY";
se ( AlertMode>0 ) Alert (Message);
se ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "UpTrendAlert");
UpTrendAlert=true; DownTrendAlert=false;
}

if ( trend[2]>0 && trend[1]<0 && Volume[0]>1 && !DownTrendAlert)
{
Messaggio = ""+Symbol()+" M "+Period()+" NonLagMa Signal for SELL";
se ( AlertMode>0 ) Alert (Message);
se ( WarningMode>0 ) PlaySound(soundfile);
if ( SendEmail>0 ) SendMail("NonLagMa", "DownTrendAlert");
DownTrendAlert=true; UpTrendAlert=false;
}
//----
ritorno(0);
}

 
E_mc2 >> :

Ciao a tutti. Si prega di consigliare come risolvere il codice indyuka che il segnale acustico non viene visualizzato una volta, e poi 10 volte, o come ci sono indyuki dove il segnale fino alla prossima candela. Cioè, il segnale va tutto il tempo la candela in cui si è verificato. Ho un buon segnale, ma solo una volta... Purtroppo, a volte non riesco a sentirlo di notte(((( ringrazio in anticipo chi mi aiuterà.

A cosa ti serve? Dimmi di più, forse c'è una soluzione e tu non sai come fare le domande giuste perché la gente capisca.

Su quello che hai scritto ho due soluzioni, quale a te, due in una volta troppo lunga da scrivere :)

..

A proposito, è meglio allegare codici così lunghi in un file.

E per il codice, c'è un pulsante speciale SRC.