Aiuto per la codifica - pagina 294

 
mladen:
airquest

Dovete tenerne conto, altrimenti non funzionerà bene

Il modo migliore per chiamare gli indicatori con tale parametro è il seguente:

iCustom(NULL,targetTimeFrame,indicatorName,"",...,buffer,shift);

Quindi, usa "" per quel parametro

Grazie Mladen, come sempre, sei molto utile.

 

qualcuno sarebbe in grado di far tracciare questo indicatore sull'apertura della barra, quando presente? la versione in TradeStation traccerà una trama di un indicatore di time frame superiore (quando presente) sulla barra di time frame inferiore prima che il prezzo negozi effettivamente attraverso il valore. tuttavia, nella versione MT4 questo non è il caso, e non traccerà fino a quando il prezzo non ha negoziato attraverso di esso.

Molte grazie,

Scott

***

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Bianco

#property indicator_color2 White

//#proprietà indicator_width1 5

//#property indicator_width2 5

//---- parametri di ingresso

/************************************************** ***********************

PERIODO_M1 1

PERIODO_M5 5

PERIODO_M15 15

PERIODO_M30 30

PERIODO_H1 60

PERIODO_H4 240

PERIODO_D1 1440

PERIODO_W1 10080

PERIODO_MN1 43200

Devi usare il valore numerico del timeframe che vuoi usare

quando impostate il valore di "TimeFrame" con gli input dell'indicatore.

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[]

double vfbot[]

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- indicatori

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

caso 1 : stringa TimeFrameStr="Periodo_M1"; break;

caso 5 : TimeFrameStr="Periodo_M5"; break;

caso 15 : TimeFrameStr="Periodo_M15"; break;

caso 30 : TimeFrameStr="Periodo_M30"; break;

caso 60 : TimeFrameStr="Periodo_H1"; break;

caso 240 : TimeFrameStr="Periodo_H4"; break;

caso 1440 : TimeFrameStr="Periodo_D1"; break;

caso 10080 : TimeFrameStr="Periodo_W1"; break;

caso 43200 : TimeFrameStr="Periodo_MN1"; break;

default : TimeFrameStr="Timeframe corrente";

}

IndicatoreShortName("MTF_VolumeFinder ("+TimeFrameStr+")");

//----

return(0);

}

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

//| Funzione di deinizializzazione dell'indicatore personalizzato |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzato |

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

int start()

{

int counted_bars=IndicatorCounted();

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

doppio t1, t2

int y = 0;

mentre(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

 
scott TTM:
qualcuno sarebbe in grado di far tracciare questo indicatore sull'apertura della barra, quando presente? la versione in TradeStation traccerà una trama dell'indicatore di time frame superiore (quando presente) sulla barra di time frame inferiore prima che il prezzo negozi effettivamente attraverso il valore. tuttavia, nella versione MT4 questo non è il caso, e non traccerà finché il prezzo non avrà negoziato attraverso di esso.

molte grazie,

Scott

***

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Bianco

#property indicator_color2 White

//#proprietà indicator_width1 5

//#property indicator_width2 5

//---- parametri di ingresso

/************************************************** ***********************

PERIODO_M1 1

PERIODO_M5 5

PERIODO_M15 15

PERIODO_M30 30

PERIODO_H1 60

PERIODO_H4 240

PERIODO_D1 1440

PERIODO_W1 10080

PERIODO_MN1 43200

Devi usare il valore numerico del timeframe che vuoi usare

quando impostate il valore di "TimeFrame" con gli input dell'indicatore.

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[]

double vfbot[]

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- indicatori

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

caso 1 : stringa TimeFrameStr="Periodo_M1"; break;

caso 5 : TimeFrameStr="Periodo_M5"; break;

caso 15 : TimeFrameStr="Periodo_M15"; break;

caso 30 : TimeFrameStr="Periodo_M30"; break;

caso 60 : TimeFrameStr="Periodo_H1"; break;

caso 240 : TimeFrameStr="Periodo_H4"; break;

caso 1440 : TimeFrameStr="Periodo_D1"; break;

caso 10080 : TimeFrameStr="Periodo_W1"; break;

caso 43200 : TimeFrameStr="Periodo_MN1"; break;

default : TimeFrameStr="Timeframe corrente";

}

IndicatoreShortName("MTF_VolumeFinder ("+TimeFrameStr+")");

//----

return(0);

}

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

//| Funzione di deinizializzazione dell'indicatore personalizzato |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

int counted_bars=IndicatorCounted();

int i = Bars - counted_bars;

if(counted_bars == 0) i = Bars - num*2;

int j = 0;

doppio t1, t2

int y = 0;

mentre(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

Puoi postare il codice originale di tradestation?

 

L'ho cercato, ma non riesco a trovarlo. Ho comprato l'indicatore nel 2004.

 
scott TTM:
L'ho cercato, ma non riesco a trovarlo. Ho comprato l'indicatore nel 2004.

L'ho chiesto perché vorrei confrontare il codice - a volte il codice in lingua facile sembra un compito semplice da convertire in metatrader ma le differenze sono troppo grandi per essere al 100% in alcuni casi che la conversione è fatta come dovrebbe

 

Pls Aiutami

ciao

Potresti per favore aiutarmi a farlo funzionare per MT4 Build 600+

Grazie in anticipo!

File:
sap_robot.mq4  32 kb
forexhacked.mq4  19 kb
 

Bug WPR_MA

Ciao mladen!

Posso chiederti un piccolo aiuto di codifica?

Io, più o meno, ho scritto un indicatore che fa la media di altri 4 WPR in una finestra dell'indicatore.

Se carichi il modello, puoi vedere la differenza tra le MA sui WPR.

Superiore è l'indicatore, inferiore è mescolato manualmente. L'obiettivo è rendere il manuale un indicatore.

La mia domanda: perché lo fa? Dove ho codificato male la WPR_MA.

Grazie per il vostro tempo

Adledion

File:
 
adledion:
Ciao mladen!

Posso chiedere un piccolo aiuto di codifica?

Io, più o meno, ho scritto un indicatore che fa la media di altri 4 WPR in una finestra di indicatore.

Se si carica il modello, si può vedere la differenza tra le MA sui WPR.

Superiore è l'indicatore, inferiore è mescolato manualmente. L'obiettivo è rendere il manuale un indicatore.

La mia domanda: perché lo fa? Dove ho codificato male la WPR_MA.

Grazie per il vostro tempo

Adledion

Adledion

Nel modello la ma è applicata ad un solo WPR (WPR(50) nel caso di quel modello). Non è possibile applicare il ma a più indicatori ed è per questo che c'è una differenza tra il tuo indicatore e il template

Prova - imposta tutti i periodi WPR nel tuo indicatore a 50 e confronta i valori dell'indicatore con il precedente valore di ma nel template (precedente dato che usi lo shift uno nell'indicatore per iMAOnArray() ) e vedrai che stai avendo esattamente gli stessi valori in quel caso

 
mladen:
Adledion

Nel modello ma è applicato a un solo WPR (WPR(50) nel caso di quel modello). Non è possibile applicare il ma a più indicatori ed è per questo che c'è una differenza tra il tuo indicatore e il template

Prova - imposta tutti i periodi WPR nel tuo indicatore a 50 e confronta i valori dell'indicatore con il precedente valore di ma nel template (precedente dato che usi lo shift uno nell'indicatore per iMAOnArray() ) e vedrai che stai avendo esattamente gli stessi valori in quel caso

Wow, grazie, non ho scavato così a fondo

edit: e questo significa, nel mix manuale la ma è solo su un wpr? dati primi indicatori..? quindi in pratica il manuale è quello sbagliato (calcolando un wpr ma), rispetto alla mia idea originale, che è il calcolo di 3 o 4 wpr ma.

 

Mladen ,

Sono un po' perplesso, questi 2 indicatori stanno ridipingendo? https://www.mql5.com/en/forum/172895

Cosa rappresentano quegli istogrammi, lo sai? Grazie.

File:
forexmtn.mq4  3 kb
rd-combo.mq4  11 kb
Motivazione: