Linee scostamento % prezzo

 

Salve ho scritto un indicatore che sul grafico traccia le percentuali del prezzo come scostamento, il problema è che il livello base devo inserirlo io e vorrei che lo prendesse automaticamente dall'apertura della candela weekly, mentre adesso devo inserirlo io emodificarlo.

Ho provato la funzione in calce ma va in errore nella riga open, e non capisco il xke.

datetime inizioSettimana=TimeCurrent()-Period()*7;

extern double Livello_Base=Open(inizioSettimana);

Inoltre vorrei che le linee fossero della lunghezza della week e non per tutto il grafico, insomma come la foto in calce ed allego codice e l'immagine del come lo vorrei.

codice attuale:

#property indicator_chart_window

extern double Livello_Base=1.06;

extern double Scostamento_Percentuale_1=0.25; etc x altre linee

long cid;

int OnCalculate(const int rates_total,

                    const int prev_calculated,

                    const datetime& time[],

                    const double& open[],

                    const double& high[],

                    const double& low[],

                    const double& close[],

                    const long& tick_volume[],

                    const long& volume[],

                    const int& spread[])

{

   cid=ChartID();

   double h1=Livello_Base*(1+(Scostamento_Percentuale_1/100)); + h2 h3 etc

ObjectCreate(cid,"lh1",OBJ_HLINE,0,0,h1);

   ObjectSetInteger(cid,"lh1",OBJPROP_COLOR,Scarto_Positivo);

   ObjectSetInteger(cid,"lh1",OBJPROP_STYLE,2); etc per le altre linee

ObjectCreate("ph1",OBJ_TEXT,0,TimeCurrent(),h1);

   ObjectSetText("ph1",DoubleToStr(Scostamento_Percentuale_1,2)+" %",10,"Arial",Scarto_Positivo);

   ObjectSetInteger(cid,"ph1",OBJPROP_TIME,Time[0]+(Period()*1600)); etc per le altre linee

eturn(rates_total);

}

void OnDeinit(const int reason)

{

   ObjectDelete(ChartID(),"lh1"); etc x  altre linee