Aiuto per la codifica - pagina 227

 
Air92:
Ciao Mladen, hai fatto la versione di questo indicatore. Voglio chiedere di fare qui separatamente media mobile, come sull'esempio di altri indicatori se è possibile. Grazie.

Aria92

Non si può fare (già 8 buffer di disegno utilizzati - metatrader 4 non permette più di 8 buffer di disegno)

 
mladen:
Air92 Non si può fare (già 8 buffer di disegno usati - metatrader 4 non permette più di 8 buffer di disegno)

Ok, Mladen. ho capito. grazie

 

Ciao Mladen,

Potresti per favore convertire questo MACD MTF indi in un EA, comprare quando macd è verde su 3 tf qualsiasi, vendere quando tre rossi qualsiasi. chiudere il trade e aprirne uno nuovo sul trend inverso.

impostazioni necessarie: trail, breakeven, sloss, entrata su barra aperta o chiusa, Magic number e dimensione del lotto. Sui tf inferiori funziona bene! Lo apprezzerò. Grazie

File:
 

Ciao, ho trovato qualcosa di interessante per tutti noi nel forum.c'è questo software che può aiutare a prevedere la direzione della prossima candela.ho lavorato su questo script mt4 per aggiungere la volatilità ad esso ma non ci sono riuscito.voglio anche fare l'avviso per venire alla chiusura della candela corrente e dirci la direzione della prossima candela che sta per formarsi.la volatilità ci dirà la dimensione o quanto lontano il prezzo si estenderà.il principio non era mio.l'ho copiato da qualche parte.lo script è davvero funzionante.voglio un programmatore come Codergurus e Mladin per favore guardare in questo script.non è davvero lavorare bene ora.come l'avviso continua a raccogliere e ridipingere.

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Lime

#proprietà indicator_color2 Red

#proprietà indicator_width1 4

#proprietà indicator_width2 4

extern bool Alerts = TRUE;

double CrossUp[]

doppio CrossDown[];

bool CrossedUp = false;

bool CrossedDown = false;

int SignalLabeled = 0; // 0: stato iniziale; 1: su; 2: giù.

int upalert=false,downalert=false;

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

//|Funzione di inizializzazione personalizzata dell'indicatore |

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

int init()

{

//---- indicatori

SetIndexStyle(0,DRAW_ARROW, EMPTY);

SetIndexArrow(0,233);

SetIndexBuffer(0,CrossUp);

SetIndexStyle(1,DRAW_ARROW, EMPTY);

SetIndexArrow(1,234);

SetIndexBuffer(1,CrossDown);

//----

return(0);

}

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

//| Funzione personalizzata di deinizializzazione dell'indicatore |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzato |

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

int start(){

int limit,i,counter;

doppio pnow;

double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;

doppio SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10;

doppio SOTAV10;

doppio SOTAV2;

doppio Range, AvgRange;

int counted_bars=IndicatorCounted();

//---- controllo di possibili errori

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

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limite=Bars-counted_bars;

for(i = 0; i <= limite; i++) {

counter=i;

Range=0;

AvgRange=0;

for (counter=i;counter<=i+12;counter++)

{

AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);

}

Range=AvgRange/10;

// prezzo corrente Close e Open

double OpenPricenow = Open ;

double ClosePricenow = Close ;

double Volumenow = Volume ;

// candela 1

double OpenPrice1 = Open ;

double ClosePrice1 = Close ;

double Volume1 = Volume ;

// candela 2

double OpenPrice2 = Open ;

double ClosePrice2 = Close ;

doppio Volume2 = Volume ;

// candela 3

double OpenPrice3 = Open ;

double ClosePrice3 = Close ;

double Volume3 = Volume ;

// candela 4

double OpenPrice4 = Open ;

double ClosePrice4 = Close ;

double Volume4 = Volume ;

// candela 5

double OpenPrice5 = Open ;

double ClosePrice5 = Close ;

double Volume5 = Volume ;

// candela 6

double OpenPrice6 = Open ;

double ClosePrice6 = Close ;

double Volume6=Volume ;

// candela 7

double OpenPrice7 = Open ;

double ClosePrice7 = Close ;

double Volume7 = Volume ;

// candela 8

double OpenPrice8 =Open ;

double ClosePrice8 =Close ;

double Volume8 =Volume

// candela 9

double OpenPrice9 = Open ;

double ClosePrice9 = Close ;

double Volume9 = Volume ;

// candela 10

double OpenPrice10 =Open

double ClosePrice10=Close

double Volume10=Volume;

pnow =(ClosePricenow - OpenPricenow);

SOT = (pnow / Volumenow)*10000;

p1 = (ClosePrice1 - OpenPrice1);

SOT1= (p1 / Volume1) *10000;

p2 = (ClosePrice2 - OpenPrice2);

SOT2 =(p2/ Volume2) *10000;

p3 =(ClosePrice3 - OpenPrice3);

SOT3 =(p3/Volume3)*10000;

p4=(ClosePrice4 - OpenPrice4);

SOT4=(p4/Volume4)*10000;

p5=(ClosePrice5 - OpenPrice5);

SOT5 =(p5/Volume5)*10000;

p6=(ClosePrice6 - OpenPrice6);

SOT6 =(p6/Volume6)*10000;

p7=(ClosePrice7 - OpenPrice7);

SOT7 =(p7 / Volume7)*10000;

p8 =(ClosePrice8 - OpenPrice8);

SOT8=(p8/Volume8)*10000;

p9 =(ClosePrice9-OpenPrice9);

SOT9 =(p9/Volume9)*10000;

p10 =(ClosePrice10 -OpenPrice10);

SOT10 = (p10/Volume10)*10000;

SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);

SOTAV2 = (SOTAV10*2);

se ((SOT>SOTAV2)&&(ClosePrice1<OpenPrice1)&&(ClosePricenow<OpenPrice1)){

CrossedUp = true;

CrossedDown= false;

}

altrimenti

if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){

CrossedUp = false;

CrossedDown = true;

}

if((CrossedUp==true)&&(SignalLabeled!=1)){

CrossUp=Low-Range*1.3;

if(i<=2 && Alerts && !upalert)

{

Alert (Symbol()," ",Period()," M Price UP ");

//InviaMail("Compra "+Simbolo(),"");

upalert=true;

downalert=false;

}

SignalLabeled = 1;

}

if ((CrossedDown == true) && (SignalLabeled != 2)) {

CrossDown = High + Range*1.3;

if(i<=2 && Alerts && !downalert)

{

Alert (Symbol()," ",Period(), "M Price DOWN ");

//InviaMail("Vendi "+Simbolo()," ");

downalert=true;

upalert=false;

}

SignalLabeled = 2;

}

}

return(0);

}

Questo è il principio che guida questo software:

Speed of trade = (variazione di prezzo / volume) per unità di tempo. = (Open-Close)/tick volume nel periodo predefinito.

Se il SoT della candela corrente è maggiore del doppio del SoT medio del periodo selezionato, la prossima candela sarà nella stessa direzione della candela corrente. (I nostri segnali possono essere dati alla chiusura della candela corrente).

Attenzione: Se la candela attuale è seguita da 2-3 candele dello stesso colore, nessun segnale deve essere dato. Come esempio: Data E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direzione Cambio di prezzo Velocità 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 poiché la velocità è maggiore di 1.70 (media di 14 candele), predice che la prossima candela sarà down. Questo indicatore può essere fatto apparire come un tachimetro o solo il numero può apparire con il segnale sulla candela. Penso che questo aiuterà molto a prendere decisioni giuste. La teoria dietro a questo è che ogni aumento o caduta ha bisogno di una forza o inerzia maggiore della forza esistente, quindi appena vediamo o catturiamo tale forza extra, possiamo determinare la direzione della prossima candela e anche i valori.

......................................................................................................................

 
Mastercash:
Ciao, ho trovato qualcosa di interessante per tutti noi nel forum.c'è questo software che può aiutare a prevedere la direzione della prossima candela.ho lavorato su questo script mt4 per aggiungere la volatilità ad esso ma non ci sono riuscito.voglio anche fare l'avviso per venire alla chiusura della candela corrente e dirci la direzione della prossima candela che sta per formarsi.La volatilità ci dirà la dimensione o quanto lontano il prezzo si estenderà.il principio non era mio.l'ho copiato da qualche parte.lo script è davvero funzionante.voglio un programmatore come Codergurus e Mladin per favore guardare in questo script.non è davvero lavorare bene ora.come l'avviso continuare a raccogliere e ridipingere.

#proprietà indicator_chart_window

#proprietà indicatore_buffer 2

#proprietà indicator_color1 Lime

#proprietà indicator_color2 Red

#proprietà indicator_width1 4

#proprietà indicator_width2 4

extern bool Alerts = TRUE;

double CrossUp[]

doppio CrossDown[];

bool CrossedUp = false;

bool CrossedDown = false;

int SignalLabeled = 0; // 0: stato iniziale; 1: su; 2: giù.

int upalert=false,downalert=false;

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

//|Funzione di inizializzazione personalizzata dell'indicatore |

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

int init()

{

//---- indicatori

SetIndexStyle(0,DRAW_ARROW, EMPTY);

SetIndexArrow(0,233);

SetIndexBuffer(0,CrossUp);

SetIndexStyle(1,DRAW_ARROW, EMPTY);

SetIndexArrow(1,234);

SetIndexBuffer(1,CrossDown);

//----

return(0);

}

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

//| Funzione personalizzata di deinizializzazione dell'indicatore |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Funzione di iterazione dell'indicatore personalizzato |

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

int start(){

int limit,i,counter;

doppio pnow;

double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;

doppio SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10;

doppio SOTAV10;

doppio SOTAV2;

doppio Range, AvgRange;

int counted_bars=IndicatorCounted();

//---- controllo di possibili errori

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

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(i = 0; i <= limite; i++) {

counter=i;

Range=0;

AvgRange=0;

for (counter=i;counter<=i+12;counter++)

{

AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);

}

Range=AvgRange/10;

// prezzo corrente Close e Open

double OpenPricenow = Open ;

double ClosePricenow = Close ;

double Volumenow = Volume ;

// candela 1

double OpenPrice1 = Open ;

double ClosePrice1 = Close ;

double Volume1 = Volume ;

// candela 2

double OpenPrice2 = Open ;

double ClosePrice2 = Close ;

doppio Volume2 = Volume ;

// candela 3

double OpenPrice3 = Open ;

double ClosePrice3 = Close ;

double Volume3 = Volume ;

// candela 4

double OpenPrice4 = Open ;

double ClosePrice4 = Close ;

double Volume4 = Volume ;

// candela 5

double OpenPrice5 = Open ;

double ClosePrice5 = Close ;

double Volume5 = Volume ;

// candela 6

double OpenPrice6 = Open ;

double ClosePrice6 = Close ;

double Volume6=Volume ;

// candela 7

double OpenPrice7 = Open ;

double ClosePrice7 = Close ;

double Volume7 = Volume ;

// candela 8

double OpenPrice8 =Open ;

double ClosePrice8 =Close ;

double Volume8 =Volume

// candela 9

double OpenPrice9 = Open ;

double ClosePrice9 = Close ;

double Volume9 = Volume ;

// candela 10

double OpenPrice10 =Open

double ClosePrice10=Close

double Volume10=Volume;

pnow =(ClosePricenow - OpenPricenow);

SOT = (pnow / Volumenow)*10000;

p1 = (ClosePrice1 - OpenPrice1);

SOT1= (p1 / Volume1) *10000;

p2 = (ClosePrice2 - OpenPrice2);

SOT2 =(p2/ Volume2) *10000;

p3 =(ClosePrice3 - OpenPrice3);

SOT3 =(p3/Volume3)*10000;

p4=(ClosePrice4 - OpenPrice4);

SOT4=(p4/Volume4)*10000;

p5=(ClosePrice5 - OpenPrice5);

SOT5 =(p5/Volume5)*10000;

p6=(ClosePrice6 - OpenPrice6);

SOT6 =(p6/Volume6)*10000;

p7=(ClosePrice7 - OpenPrice7);

SOT7 =(p7 / Volume7)*10000;

p8 =(ClosePrice8 - OpenPrice8);

SOT8=(p8/Volume8)*10000;

p9 =(ClosePrice9-OpenPrice9);

SOT9 =(p9/Volume9)*10000;

p10 =(ClosePrice10 -OpenPrice10);

SOT10 = (p10/Volume10)*10000;

SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);

SOTAV2 = (SOTAV10*2);

se ((SOT>SOTAV2)&&(ClosePrice1<OpenPrice1)&&(ClosePricenow<OpenPrice1)){

CrossedUp = true;

CrossedDown= false;

}

altrimenti

if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){

CrossedUp = false;

CrossedDown = true;

}

if((CrossedUp==true)&&(SignalLabeled!=1)){

CrossUp=Low-Range*1.3;

if(i<=2 && Alerts && !upalert)

{

Alert (Symbol()," ",Period()," M Price UP ");

//InviaMail("Compra "+Simbolo(),"");

upalert=true;

downalert=false;

}

SignalLabeled = 1;

}

if ((CrossedDown == true) && (SignalLabeled != 2)) {

CrossDown = High + Range*1.3;

if(i<=2 && Alerts && !downalert)

{

Alert (Symbol()," ",Period(), "M Price DOWN ");

//InviaMail("Vendi "+Simbolo()," ");

downalert=true;

upalert=false;

}

SignalLabeled = 2;

}

}

return(0);

}

Questo è il principio che guida questo software:

Speed of trade = (variazione di prezzo / volume) per unità di tempo. = (Open-Close)/tick volume nel periodo predefinito.

Se il SoT della candela corrente è maggiore del doppio del SoT medio del periodo selezionato, la prossima candela sarà nella stessa direzione della candela corrente. (I nostri segnali possono essere dati alla chiusura della candela corrente).

Attenzione: Se la candela attuale è seguita da 2-3 candele dello stesso colore, nessun segnale deve essere dato. Come esempio: Data E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direzione Cambio di prezzo Velocità 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 poiché la velocità è maggiore di 1.70 (media di 14 candele), predice che la prossima candela sarà down. Questo indicatore può essere fatto apparire come un tachimetro o solo il numero può apparire con il segnale sulla candela. Penso che questo aiuterà molto a prendere decisioni giuste. La teoria dietro questo è che ogni aumento o caduta ha bisogno di una forza o inerzia maggiore della forza esistente, quindi non appena vediamo o catturiamo tale forza extra, possiamo determinare la direzione della prossima candela e anche i valori.

......................................................................................................................

Mastercash

Come vedo avrà bisogno di alcuni test di run-time prima di fare qualsiasi cosa sul codice. Non appena il mercato si apre vedremo cosa si può fare

 

Ciao

Qualcuno potrebbe aiutarmi ad aggiungere del codice a questo script.jarroo_level_picker.mq4

Questo script disegna la linea sull'apertura o la chiusura della candela dipende se la facciamo cadere sotto o sotto la metà della candela e vorrei che disegnasse anche una piccola freccia sotto o sotto quella candela per vedere in seguito su quale candela è stata usata

Grazie in anticipo.

 
Andrewsurfer:
Ciao

Qualcuno potrebbe aiutarmi ad aggiungere del codice a questo script.jarroo_level_picker.mq4

Questo script disegna la linea sull'apertura o la chiusura della candela dipende se la lasciamo cadere sotto o sotto la metà della candela e vorrei che disegnasse anche una piccola freccia sotto o sotto quella candela per vedere in seguito su quale candela è stata usata

Grazie in anticipo.

Andrewsurfer

Prova questa versione. Non aggiunge una freccia ma aggiunge una barra dello stesso colore della linea alla barra su cui è stata usata la candela

 
mladen:
Andrewsurfer Prova questa versione. Non aggiunge una freccia ma aggiunge una barra dello stesso colore della linea alla barra che è stata usata

Mi dispiace ma non vedo alcun cambiamento. C'è ancora solo la linea blu senza altri segni.

 
Andrewsurfer:
Mi dispiace ma non vedo alcun cambiamento. C'è ancora solo la linea blu senza altri segni.

C'è una linea in più (come nell'immagine) e si crea nella barra dove si lascia lo script a

File:
v_line.gif  36 kb
 
mladen:
C'è una linea in più (come nell'immagine) ed è creata nella barra in cui si lascia lo script

Avevo sbagliato le impostazioni del grafico MT4 in primo piano e ora funziona.

Grazie mille.