[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 121

 

http://clip2net.com/s/2LkQp

Tutto quello che puoi fare per aiutare... Saluti a tutti! Ho bisogno di mettere le impostazioni per Fractals nella finestra delle impostazioni, e sono nella funzione....

 
Allis:

http://clip2net.com/s/2LkQp


Tutto quello che puoi fare per aiutare... Saluti a tutti! Ho bisogno di mettere le impostazioni per Fractals nella finestra delle impostazioni, e sono nella funzione....


Aggiungi ;


extern int Bars.left =5;

e anche in quello successivo.

e commentare le linee sottostanti in modo che non si ripetano

// int Bars.left =5;

// int Bars.righ =5;

 
BeerGod:

Aggiungi ;


extern int Bars.left =5;

e anche in quello successivo

e commentare le linee sottostanti in modo che non si ripetano

// int Bars.left =5;

// int Bars.righ =5;


Non l'ho fatto come hai scritto tu? L'ho portato agli Esterni e l'ho commentato in fondo a....

http://clip2net.com/s/2LlEi beh, è da lì che ho iniziato

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
 

Prova questo

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5;     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5;    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
//int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
//int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+


 
BeerGod:

Prova questo, compila senza errori, non ho controllato la funzionalità)


Bummer.... Ho iniziato con questo .... Esattamente da questo... Ho postato il link.... E per qualche motivo non ha funzionato... Grazie!
 
hoz:

Artem, è meglio che tu beva il succo come hai fatto tu. Non raccomando la birra... Non lo consiglio... :)

Eh... Sono otto anni che non voglio più prendere alcool - non mi interessa... :)

Grazie per la tua preoccupazione per la tua salute ;)

 
hoz:

No. Penso solo che condizioni e controlli inutili siano uno spreco di risorse.
Sì... È molto più facile saltare qualche controllo necessario che fare rapporto allo zio Kolya...
 
Allis:

Bummer.... Ho iniziato lì.... Esattamente da questo... Ho postato il link.... E per qualche motivo non ha funzionato... Grazie!
Non funzionava semplicemente perché bisognava mettere un punto e virgola dopo la dichiarazione della variabile e tu non ne avevi.
 

Per guardare le candele standard da una diversa angolazione, sposterò la linea temporale da sinistra a destra. Le candele orarie non dovrebbero iniziare e finire a 00 minuti, ma a 10 o 20 minuti, per esempio.

Darà alcune informazioni aggiuntive. Lo stesso sui candelieri giornalieri - spostamento di ore (per esempio, open sessio). Ho iniziato a modificare gli archivi csv in excel, ma richiedono molto tempo. Forse qualcuno può vedere qualche altra soluzione per spostare i minuti e ricalcolare il resto del tempo.

 
Operr:

Per guardare le candele standard da una diversa angolazione, sposterò la linea temporale da sinistra a destra. Le candele orarie non dovrebbero iniziare e finire a 00 minuti, ma a 10 o 20 minuti, per esempio.

Darà alcune informazioni aggiuntive. Lo stesso sui candelieri giornalieri - spostamento di ore (per esempio, open sessio). Ho iniziato a modificare gli archivi csv in excel, ma richiedono molto tempo. Forse qualcuno può vedere qualche altra soluzione per spostare i minuti e ricalcolare il resto del TF.


Puoi usare lo script period_converter e modificare la condizione di ritaglio delle candele. Per esempio, a colpo d'occhio, per ottenere candele per x ore e 10 minuti:

      if(time0>=i_time+periodseconds || i==0)

sostituire con

      if(TimeMinute(time0)==10 || i==0)

O così)))

Motivazione: