Aiuto per la codifica - pagina 160

 
TEAMTRADER:
Ho scaricato questo indicatore da uno dei thread ed è molto meglio degli indicatori CCI-zones o Ma-zones.

Può essere adattato per mostrare sullo schermo come in un indicatore di zona?

È impostato su CCI impostazione 13, ma se può essere fatto in un indicatore di impostazione variabile facilmente allora che sarebbe un bonus - ma molto una richiesta secondaria.

Si tratta di un indicatore Forex-TSD ma nessuna cartella mq4 era con esso.

Grazie

TEAMTRADER

Per quanto vedo non è un cci ma un thv t3 trix. Si dovrebbe cercare alcune delle variazioni di thv trix

 

mladen, ho l'indicatore allegato che traccia una linea per i massimi e i minimi del giorno precedente, ma ho bisogno dello stesso indicatore che traccia i 3 massimi e minimi giornalieri precedenti, puoi aiutarmi? grazie in anticipo

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

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Deinitialization function |

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

int deinit()

{

ObjectsDeleteAll();

return(0);

}

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

//| Start function |

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

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

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

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

 
k3rn3l:
mladen, ho l'indicatore allegato che traccia una linea per il massimo e il minimo del giorno precedente..ma ho bisogno dello stesso indicatore che traccia i 3 massimi e minimi giornalieri precedenti, puoi aiutarmi? grazie in anticipo

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

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Deinitialization function |

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

int deinit()

{

ObjectsDeleteAll();

return(0);

}

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

//| Start function |

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

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

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

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

Temo di non capire

Quell'indicatore traccia il massimo e il minimo del giorno precedente su tutta la storia (tanti giorni quanti sono sul grafico). Cosa significa esattamente "traccia i 3 massimi e minimi giornalieri precedenti"?

 
mladen:
Temo di non capire Quell'indicatore disegna il massimo e il minimo del giorno precedente su tutta la storia (tanti giorni quanti sono sul grafico). Cosa significa esattamente "traccia i 3 massimi e minimi giornalieri precedenti"?

Mi spiego, vorrei che l'indicatore disegnasse ogni giorno i massimi e i minimi dei 3 giorni precedenti

 
k3rn3l:
Mi spiego, vorrei che l'indicatore disegnasse ogni giorno i massimi e i minimi dei 3 giorni precedenti

Prova qualcosa come questo (questo non usa oggetti ma buffer e puoi impostare il numero di giorni che vuoi usare per i massimi e i minimi)

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

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

//

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

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

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

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}
 
mladen:
Prova qualcosa come questo (questo non usa oggetti ma buffer e puoi impostare il numero di giorni che vuoi usare per il massimo alto e il minimo più basso)
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

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

//

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

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

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

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}

grazie s mladen, scusa per la mia cattiva spiegazione...intendevo il massimo e il minimo di ogni 3 giorni precedenti...per esempio PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] e lo stesso per il minimo...

 
k3rn3l:
grazie s mladen, scusa per la mia cattiva spiegazione...intendevo il massimo e il minimo di ogni 3 giorni precedenti..per esempio PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] e lo stesso per il minimo...

È più semplice da trovare del precedente (meno chiamate di funzioni )

Puoi fare così:

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_color3 LimeGreen

#property indicator_color4 Red

#property indicator_color5 LimeGreen

#property indicator_color6 Red

#property indicator_width1 2

#property indicator_width2 2

#property indicator_style5 STYLE_DOT

#property indicator_style6 STYLE_DOT

double buffh1[];

double buffl1[];

double buffh2[];

double buffl2[];

double buffh3[];

double buffl3[];

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

//

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

int init()

{

SetIndexBuffer(0,buffh1);

SetIndexBuffer(1,buffl1);

SetIndexBuffer(2,buffh2);

SetIndexBuffer(3,buffl2);

SetIndexBuffer(4,buffh3);

SetIndexBuffer(5,buffl3);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

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

buffh1 = iHigh(NULL,PERIOD_D1,y+1);

buffl1 = iLow(NULL,PERIOD_D1,y+1);

buffh2 = iHigh(NULL,PERIOD_D1,y+2);

buffl2 = iLow(NULL,PERIOD_D1,y+2);

buffh3 = iHigh(NULL,PERIOD_D1,y+3);

buffl3 = iLow(NULL,PERIOD_D1,y+3);

}

return(0);

}

PS: la linea più spessa è 1 giorno fa, la linea più sottile è 2 giorni fa e la linea tratteggiata è 3 giorni fa

 

Aiuto di codifica pls...........

Ciao a tutti gli esperti qui, qualcuno può aiutarmi a codificare il semplice EA che modificherà automaticamente l'ultimo ordine di lavoro TP come l'ordine corrente appena aperto? diciamo che ho 1 o più ordini di lavoro e pochi ordini in sospeso, quando l'ordine in sospeso diventa ordine di lavoro, spero che l'EA modificherà automaticamente il TP dell'ordine di lavoro prev (prezzo target) all'ordine corrente appena attivo... grazie ....

 
jeffyap:
Aiuto di codifica pls........... ciao a tutti gli esperti qui, qualcuno può aiutarmi a codificare il semplice EA che modificherà automaticamente l'ultimo ordine di lavoro TP stesso come l'ordine corrente appena aperto? diciamo che ho 1 o più ordini di lavoro e pochi ordini in sospeso, quando l'ordine in sospeso diventa ordine di lavoro, spero che l'EA modificherà automaticamente il TP dell'ordine di lavoro prev (prezzo target) all'ordine corrente appena attivo.. grazie ....

Perché non usi semplicemente un normale trailing stop su tutti gli ordini? In questo modo saranno livellati alla fine (se hai più ordini) senza bisogno di aprire un nuovo ordine

 

Ciao Mladen,

se voglio contare le barre tra 2 minimi, come posso evitare la barra di domenica 23.00 p.m a 00.00?

perché sul grafico 4h c'è quella barra e dura solo un'ora.....e appare anche sul grafico giornaliero.

Grazie in anticipo

Motivazione: