Aiuto per la codifica - pagina 288

 

Ciao,

In primo luogo, mi scuso se questo è nel posto sbagliato, il suo un indi pivot sto guardando, ma la mia Q è in relazione alla codifica, avrei potuto mettere in MTF come bene, ma ho pensato che questo era il posto migliore per iniziare.

In MT4 abbiamo giornaliero, settimanale, mensile = W1, D1, MN1

ma c'è una funzione anno, o una funzione trimestre.

Così per esempio nell'indicatore pivot allegato come si fa a ottenere 1 anno, ed è (o si può scegliere) un rotolamento 12 mesi o un fisso prev anno 2013 esempio. E lo stesso per come faccio a farlo calcolare i pivot trimestrali.

Qualsiasi guida sarebbe apprezzata, allegato è un indi pivot mensile. sono ragionevolmente sicuro di poter modificare l'allegato, ma non so come iniziare a ottenere i dati in esso per renderlo trimestri di uscita o anno.

allpivots_monthly.mq4

Molte grazie

Kevin

File:
 
mladen:
L'hai cambiato per usare "#pollan indy" non ho idea di cosa faccia quell'indicatore (se è come il resto degli indicatori "pollan" allora si ridisegna e questo può causare i tuoi problemi, ma ora sto solo facendo il gioco delle ipotesi)

Caro signore MLADEN...

Potrebbe sostituire questo (#pollan indy) con qualsiasi altro indicatore che lei ha... magari chiamare #VQ bars.... PER FAVORE fai una prova.... perché ho una lettura sul buffer dell'indicatore come foto allegata... ma non ho potuto chiamare via iCustom nel mio EA per testare ulteriormente questo '#pollan indy'...

Spero di risentirti presto... GRAZIE

Sinceramente vostro

AZRUL

File:
my_vq.jpg  48 kb
 
12BPRO:
Caro signor MLADEN...

Potresti sostituire questo (#pollan indy) con qualsiasi altro indicatore che hai... magari chiama #VQ bars.... PER FAVORE fai una prova.... perché ho una lettura sul buffer dell'indicatore come da foto allegata... ma non ho potuto chiamare via iCustom nel mio EA per testare ulteriormente questo '#pollan indy'...

Spero di risentirti presto... GRAZIE

Sinceramente tuo

AZRUL

Non c'è bisogno di sostituire #VQ con #VQ (sta già calcolando la qualità della volatilità)

Se funziona come dovrebbe con il normale #VQ l'unica conclusione logica è che c'è qualcosa di sbagliato con "#pollan indy".

 

Aiuto per la codifica

Buongiorno a tutti

Ciao mladen

Sto cercando di creare i miei primi codici.

Imparare da altri codici, dal momento che non c'è manuale MT4 nella mia lingua.

Prego non ridere del mio codice.

Per favore mi può aiutare funziona.

Si tratta di un semplice indicatore che segna la creazione di un Doji.

Chiedo il vostro aiuto.

Vi ringrazio molto in anticipo.

Cordiali saluti.

Hermo.

PD. Compila bene ma non funziona.

File:
 
Hermo:
Buongiorno a tutti

Ciao mladen

Sto cercando di creare i miei primi codici.

Imparare da altri codici, dal momento che non c'è manuale MT4 nella mia lingua.

Prego non ridere del mio codice.

Per favore mi può aiutare funziona.

Si tratta di un semplice indicatore che segna la creazione di un Doji.

Chiedo il vostro aiuto.

Vi ringrazio molto in anticipo.

Cordiali saluti.

Hermo.

PD. Compila bene ma non funziona.

Hermo

Lo controllerò

Aspettando la conferenza stampa della BCE ora :):)

 
12BPRO:
Caro signore MLADEN...

Questo è il motivo per cui in primo luogo non ho postato il mio #VQ.... forse hai ragione sul fatto che c'è qualcosa di sbagliato sul "pollan indy" e SI rivernicia....

Per me, vorrei solo provare la mia teoria, con questo indicatore solo per vedere qual è il risultato....

Il fatto è che non ho potuto chiamare il buffer dell'indicatore nel mio EA... forse è causato dalla versione modificata della mia #VQ che sta bloccando la chiamata iCustom al mio EA....

Con la #VQ originale funziona bene... e potevo eseguire il mio EA.... ma con la #VQ modificata (la mia), non potevo eccedere ma c'è ancora un valore come mostrato nel thread precedente...

Penso che il problema sia con la mia versione MODIFICATA di #VQ.... può essere così errore di sintassi... PER FAVORE se avete tempo date un'occhiata e vedete se funziona come dovrebbe.....

GRAZIE... e scusate per qualsiasi input negativo.....

il vostro sincero...

AZRUL

AZRUL

Semplicemente non posso sapere cosa sta succedendo con il tuo "pollan indy" senza vedere il codice

Tutto quello che posso fare è indovinare, e indovinare nella codifica è molto, molto male

tutto il meglio

 
mladen:
Non c'è bisogno di sostituire #VQ con #VQ (sta già calcolando la qualità della volatilità) Se funziona come dovrebbe con la normale #VQ l'unica conclusione logica è che c'è qualcosa di sbagliato con "#pollan indy".

Caro signore MLADEN...

Questo è il motivo per cui in primo luogo non ho postato il mio #VQ.... forse hai ragione sul fatto che c'è qualcosa di sbagliato sul "pollan indy" e SI rivernicia....

Per me, vorrei solo provare la mia teoria, con questo indicatore solo per vedere qual è il risultato....

Il fatto è che non ho potuto chiamare il buffer dell'indicatore nel mio EA... forse è causato dalla versione modificata della mia #VQ che sta bloccando la chiamata iCustom al mio EA....

Con la #VQ originale funziona bene... e potevo eseguire il mio EA.... ma con la #VQ modificata (la mia), non potevo eccedere ma c'è ancora un valore come mostrato nel thread precedente...

Penso che il problema sia con la mia versione MODIFICATA di #VQ.... potrebbe essere qualche errore di sintassi... PER FAVORE se hai tempo dai un'occhiata e vedi se funziona come dovrebbe..... solo per lo SCOPO DI IMPARARE....

GRAZIE... HO FATTO FUNZIONARE L'EA E LO STO TESTANDO, SE SEI INTERESSATO A SCOPRIRE IL RISULTATO LO POSTERÒ NEL THREAD DI POLLAN.....

il vostro sincero ...

AZRUL

 
mladen:
AZRUL

Semplicemente non posso sapere cosa sta succedendo con il vostro "pollan indy" senza vedere il codice

Tutto quello che posso fare è indovinare, e indovinare nella codifica è molto, molto male

tutto il meglio

HO FATTO FUNZIONARE QUELL'EA ORA E LO STO TESTANDO, SE SEI INTERESSATO A SCOPRIRE IL RISULTATO LO POSTERÒ NEL THREAD DI POLLAN.....

ERA LA MIA VERSIONE DEL #VQ CHE NON FUNZIONAVA...

GRAZIE...

il vostro sincero...

AZRUL

 

Ciao CODESGURUS,

Ho una domanda generale sul multi time frame.... come allegato

la prima immagine a sinistra è un indicatore RSI su timeframe 5M...

Sulla seconda è l'RSI multi time frame del 5M sul timeframe 15M...

La domanda è perché c'è una differenza nel valore come indicato nel cerchio ROSSO....

Qualcuno può per favore spiegare e rettificare questo codice RsiMA-MTF........

#property indicator_separate_window

#proprietà indicator_buffers 6

#proprietà indicator_color1 Lime

#proprietà indicatore_colore2 Rosso

#proprietà indicator_color3 Aqua

#Proprietà indicatore_colore4 Giallo

#Proprietà indicatore_colore5 Bianco

#Proprietà indicatore_colore6 Magenta

#proprietà indicator_width1 1 1

#proprietà indicator_width2 1

#proprietà indicator_width3 1

#proprietà indicator_width4 1

#proprietà indicator_width5 1

#proprietà indicator_width6 1

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

//-----

//extern string TimeFrames = "M15; M60";

extern bool TimeFrame1bool = true;

extern int TimeFrame1 = 0;

extern bool TimeFrame2bool = False;

extern int TimeFrame2 = 0;

extern bool TimeFrame3bool = False

extern int TimeFrame3 = 0;

//int period[]={1,5,15,30,60,240,1440,43200};

//string periodString[]={"M1","M5","M15","M30","H1","H4","D1",MN1"};

// creare un altro array con i nomi degli indicatori

//stringa signalNameString[]={"MA"};

int ExtCountedBars=0;

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

int TF;

//---- buffer

double ExtMapBuffer1[]

double ExtMapBuffer2[]

double ExtMapBuffer3[]

double ExtMapBuffer4[]

double ExtMapBuffer5[]

double ExtMapBuffer6[];

//-------

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

int init()

{

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexBuffer(1, ExtMapBuffer2);

SetIndexBuffer(2, ExtMapBuffer3);

SetIndexBuffer(3, ExtMapBuffer4);

SetIndexBuffer(4, ExtMapBuffer5);

SetIndexBuffer(5, ExtMapBuffer6);

//-----

SetIndexStyle(0, DRAW_LINE);

SetIndexStyle(1, DRAW_LINE);

SetIndexStyle(2, DRAW_LINE);

SetIndexStyle(3, DRAW_LINE);

SetIndexStyle(4, DRAW_LINE);

SetIndexStyle(5, DRAW_LINE);

// SetIndexStyle(0,DRAW_LINE,EMPTY,1);

// SetIndexBuffer(0,ExtMapBuffer1);

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

int M1 = PERIODO_M1;

int M5 = PERIODO_M5

int M15 = PERIODO_M15;

int M30 = PERIOD_M30;

int H1 = PERIODO_H1;

int H4 = PERIOD_H4;

int D1 = PERIOD_D1;

int WK1 = PERIODO_W1;

int MN1 = PERIOD_M1;

TF=Periodo();

if (TF==PERIOD_M1) { TimeFrame1 = M1; TimeFrame2 = M1; TimeFrame3 = M1;}

else if (TF==PERIOD_M5) { TimeFrame1 = M1; TimeFrame2 = M5; TimeFrame3 = M15;}

else if (TF==PERIOD_M15) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }

else if (TF==PERIOD_M30) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }

else if (TF==PERIOD_H1) { TimeFrame1 = M15; TimeFrame2 = H1; TimeFrame3 = H4; }

else if (TF==PERIOD_H4) { TimeFrame1 = H4; TimeFrame2 = H4; TimeFrame3 = D1; }

else if (TF==PERIOD_D1) { TimeFrame1 = H4; TimeFrame2 = D1; TimeFrame3 = WK1;}

else if (TF==PERIOD_W1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

else if (TF==PERIOD_MN1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

else { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

//-----

return(0);

}

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

int start()

{

datetime TimeArray1[];

datetime TimeArray2[]

datetime TimeArray3[];

int limit, i,y=0;

// int counted_bars = IndicatorCounted();

ExtCountedBars=IndicatorCounted();

if(ExtCountedBars < 0) return(-1);

if(ExtCountedBars > 0) ExtCountedBars--;

limite = Bars - ExtCountedBars;

//-----

ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TimeFrame1);

ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TimeFrame2);

ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),TimeFrame3);

for(i=0,y=0;i<limite;i++)

{

se(TimeFrame1bool)

{

se (Time<TimeArray1[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer1 = iCustom(NULL,TimeFrame1 , "#RSI-MA",0, y);

ExtMapBuffer2 = iCustom(NULL,TimeFrame1 , "#RSI-MA",3, y);

}

}

//-----

se(TimeFrame2bool)

{

if (Time<TimeArray2[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer3 = iCustom(NULL,TimeFrame2 , "#RSI-MA",0,y);

ExtMapBuffer4 = iCustom(NULL,TimeFrame2 , "#RSI-MA",3,y);

}

}

//-----

se(TimeFrame3bool)

{

if (Time<TimeArray3[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer5 = iCustom(NULL,TimeFrame3 , "#RSI-MA",0, y);

ExtMapBuffer6 = iCustom(NULL,TimeFrame3 , "#RSI-MA",3, y);

}

}

}

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

//=======================================================

return(0);

}

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

int deinit()

{

return(0);

}

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

File:
rsi-mtf_diff.jpg  290 kb
 

QUESTA È UNA COPIA DI RSI-MA........

#property indicator_separate_window

#proprietà indicatore_buffer 4

#proprietà indicator_color1 LimeGreen

#proprietà indicatore_colore2 Rosso

#proprietà indicatore_colore3 Giallo

#proprietà indicator_color4 Bianco ///Grigio scuro

#proprietà indicator_width1 3

#proprietà indicator_width2 3

#proprietà indicator_width3 3 3

#proprietà indicator_width4 1

#proprietà indicator_levelcolor Aqua

extern string TimeFrame = "Time frame corrente";

extern int RsiOma_Period = 13;

extern int RsiOma_Price = 0;

extern int RsiOma_Mode = MODE_LWMA;

extern int MaPeriod = 8;

extern int MaType = MODE_LWMA;

extern double levelOb = 88;

extern double levelOs = 13;

extern int OB_RSI = 80;

extern int OS_RSI = 15;

extern string note = "accendere Alert = true; spegnere = false";

extern bool alertsOn = true; ///falso;

extern bool alertsOnCurrent = true;

extern bool alertsMessage = true;

extern bool alertsSound = true; ///falso;

extern bool alertsEmail = false;

extern string soundfile = "connect.wav"; ///"alert2.wav

extern string SoundUp = "ok.wav

extern string SoundDown = "stops.wav";

double rsi[];

double rsida[]

double rsidb[]

double ma[]

double mab[];

doppio trend[];

double slope[];

stringa indicatorFileName;

int Char, timeFrame;

bool returnBars;

bool calculateValue;

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

int init()

{

IndicatorBuffers(7);

SetIndexBuffer(0,rsi);

SetIndexBuffer(1,rsida);

SetIndexBuffer(2,rsidb);

SetIndexBuffer(3,ma);

SetIndexBuffer(4,mab);

SetIndexBuffer(5,trend);

SetIndexBuffer(6,pendenza);

SetLevelValue(0,levelOs);

SetLevelValue(1,levelOb);

indicatorFileName = WindowExpertName();

calculateValue = (TimeFrame=="calculateValue"); if (calculateValue) return(0);

returnBars = (TimeFrame=="returnBars"); if (returnBars) return(0);

timeFrame = stringToTimeFrame(TimeFrame);

IndicatorShortName(timeFrameToString(timeFrame)+" Rsi-Ma MaxMin ("+RsiOma_Period+", "+MaPeriod+")");

SetIndexLabel(0, "RSI");

SetIndexLabel(1, "RSIDA");

SetIndexLabel(2, "RSIDB");

SetIndexLabel(3, "MA");

return(0);

}

int deinit() { return(0); }

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

int start()

{

int counted_bars=IndicatorCounted();

int i,limit;

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limite = MathMin(Bars-counted_bars,Bars-1);

if (returnBars) { rsi[0] = limite+1; return(0); }

if (calculateValue || timeFrame==Period())

{

if (slope[limit] == -1) ClearPoint(limit,rsida,rsidb);

for (i=limite; i >= 0; i--) mab = iMA(NULL,0,RsiOma_Period,0,RsiOma_Mode,RsiOma_Price,i);

for (i=limit; i >= 0; i--) rsi = iRSIOnArray(mab,0,RsiOma_Period,i);

for (i=limite; i >= 0; i--)

{

ma = iMAOnArray(rsi,0,MaPeriod,0,MaType,i);

rsida = EMPTY_VALUE;

rsidb = EMPTY_VALUE;

pendenza = pendenza;

tendenza = tendenza;

se ((rsi > rsi) && (rsi > OB_RSI))

slope= 1;

se ((rsi < rsi) && (rsi < OS_RSI))

slope=-1;

se ((rsi > ma) && (rsi > OB_RSI))

tendenza= 1;

se ((rsi < ma) && (rsi < OS_RSI))

trend=-1;

se (pendenza == -1)

PlotPoint(i,rsida,rsidb,rsi);

}

manageAlerts();

return(0);

}

limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period());

if (slope[limit]==-1) ClearPoint(limit,rsida,rsidb);

for (i=limite;i>=0; i--)

{

int y = iBarShift(NULL,timeFrame,Time);

rsi = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,0,y);

rsida = VUOTO_VALORE;

rsidb = VUOTO_VALORE;

ma = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,3,y);

trend = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,5,y);

slope = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,6,y);

}

for (i=limit;i>=0;i--) if (slope==-1) PlotPoint(i,rsida,rsidb,rsi);

manageAlerts();

return(0);

}

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

stringa sTfTable[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};

int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

int stringToTimeFrame(stringa tfs)

{

tfs = stringUpperCase(tfs);

for (int i=ArraySize(iTfTable)-1; i>=0; i--)

se (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period());

return(Periodo());

}

stringa timeFrameToString(int tf)

{

for (int i=ArraySize(iTfTable)-1; i>=0; i--)

se (tf==iTfTable) return(sTfTable);

return("");

}

stringa stringUpperCase(stringa str)

{

stringa s = str;

for (int length=StringLen(str)-1; length>=0; length--)

{

Char = StringGetChar(s, lunghezza);

if((Char > 96 && Char 223 && Char < 256))

s = StringSetChar(s, lunghezza, Char - 32);

else if(Char > -33 && Char < 0)

s = StringSetChar(s, length, Char + 224);

}

return(s);

}

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

void ClearPoint(int i,double& first[],double& second[])

{

if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))

secondo = VUOTO_VALORE;

altrimenti

if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE))

first = EMPTY_VALUE;

}

void PlotPoint(int i,double& first[],double& second[],double& from[])

{

if (first == EMPTY_VALUE)

{

if (first == EMPTY_VALUE)

{

first = from;

first = from;

secondo = EMPTY_VALUE;

}

else

{

secondo = da;

secondo = da;

first = EMPTY_VALUE;

}

}

else

{

first = from;

secondo = VUOTO_VALORE;

}

}

void manageAlerts()

{

if (!calculateValue && alertsOn)

{

se (avvisiOnCorrente)

int whichBar = 0;

else whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));

se (trend[qualeBar] != trend[qualeBar+1])

{

se (trend[qualeBar] == 1)

//doAlert(whichBar, "trend");

doAlerts( whichBar, "UP RSI-MA "+Symbol()+" (tf: "+Period()+")",SoundUp);

se (tendenza[qualeBar] ==-1)

//doAlert(whichBar, "no trend");

doAlerts( whichBar, "DOWN RSI-MA "+Symbol()+" (tf: "+Period()+")",SoundDown);

}

}

}

void doAlerts(int forBar, string doWhat, string SoundFile) {

static string previousAlert="niente";

static datetime previousTime;

stringa messaggio;

if (previousAlert != doWhat || previousTime != Time[forBar]) {

previousAlert = doWhat;

previousTime = Time[forBar];

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);

if (alertsMessage) Alert(message);

if (alertsSound) PlaySound(SoundFile);

se (avvisiEmail) SendMail(StringConcatenate(Symbol()," rsioma "),messaggio);

}

}

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

void doAlert(int forBar, string doWhat)

{

static string previousAlert="niente";

static datetime previousTime;

stringa messaggio;

if (previousAlert != doWhat || previousTime != Time[forBar]) {

previousAlert = doWhat;

previousTime = Time[forBar];

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);

if (avvisiMessaggio) Avvisa(messaggio);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," rsioma "),message);

if (alertsSound) PlaySound(soundfile);

}

}

GRAZIE A TUTTI.....

i migliori saluti

AZRUL..........

PS... come faccio ad allegare questo codice FILES qui..... Scusa per il disordine....