[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 121

 

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

Alles, was Sie tun können, um zu helfen... Grüße an alle! Ich muss die Einstellungen für Fraktale im Einstellungsfenster vornehmen, und sie befinden sich in der Funktion....

 
Allis:

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


Alles, was Sie tun können, um zu helfen... Grüße an alle! Ich muss die Einstellungen für Fraktale im Einstellungsfenster vornehmen, und sie befinden sich in der Funktion....


Hinzufügen ;


extern int Bars.left =5;

und auch in der nächsten.

und kommentieren Sie die folgenden Zeilen aus, damit sie sich nicht wiederholen

// int Bars.left =5;

// int Bars.righ =5;

 
BeerGod:

Hinzufügen ;


extern int Bars.left =5;

und auch in der nächsten Ausgabe

und kommentieren Sie die folgenden Zeilen aus, damit sie sich nicht wiederholen

// int Bars.left =5;

// int Bars.righ =5;


Habe ich es nicht so gemacht, wie Sie es geschrieben haben? Ich habe es zu den Externs gebracht und am Ende von.... auskommentiert.

http://clip2net.com/s/2LlEi Nun, damit habe ich eigentlich angefangen.

//+------------------------------------------------------------------+
//|                                                                  |
//|                 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);
  }
//+------------------------------------------------------------------+
 

Versuchen Sie dies

//+------------------------------------------------------------------+
//|                                                                  |
//|                 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:

Versuchen Sie dies, es kompiliert ohne Fehler, ich habe die Funktionalität nicht überprüft)


Schade.... Ich begann mit diesem.... Genau von diesem... Ich habe den Link gepostet.... Und aus irgendeinem Grund hat es nicht funktioniert... Ich danke Ihnen!
 
hoz:

Artem, du trinkst besser Saft, so wie du es getan hast. Ich empfehle kein Bier... Ich empfehle es nicht... :)

Äh... Seit acht Jahren will ich keinen Alkohol mehr trinken - ich habe kein Interesse daran... :)

Danke für Ihre Sorge um Ihre Gesundheit ;)

 
hoz:

Nein. Ich denke nur, dass unnötige Bedingungen und Kontrollen eine Verschwendung von Ressourcen sind.
Ja... Es ist viel einfacher, ein paar notwendige Kontrollen auszulassen, als sich bei Onkel Kolya zu melden...
 
Allis:

Schade.... Ich habe dort angefangen.... Genau von diesem... Ich habe den Link gepostet.... Und aus irgendeinem Grund hat es nicht funktioniert... Ich danke Ihnen!
Es hat einfach nicht funktioniert, weil man nach der Variablendeklaration ein Semikolon setzen musste, und du hattest keins.
 

Um die Standard-Candlesticks aus einem anderen Blickwinkel zu betrachten, werde ich die Zeitachse von links nach rechts verschieben. Die stündlichen Candlesticks sollten nicht bei 00 Minuten beginnen und enden, sondern z. B. bei 10 oder 20 Minuten.

Sie wird einige zusätzliche Informationen liefern. Das Gleiche gilt für die Tageskerzen - Verschiebung nach Stunden (z.B. Open Sessio). Ich habe begonnen, die csv-Archive in Excel zu bearbeiten, aber das ist sehr zeitaufwändig. Vielleicht kann jemand eine andere Lösung finden, um die Minuten zu verschieben und den Rest des Zeitrahmens neu zu berechnen.

 
Operr:

Um die Standard-Candlesticks aus einem anderen Blickwinkel zu betrachten, werde ich die Zeitachse von links nach rechts verschieben. Die stündlichen Candlesticks sollten nicht bei 00 Minuten beginnen und enden, sondern z. B. bei 10 oder 20 Minuten.

Sie wird einige zusätzliche Informationen liefern. Das Gleiche gilt für die Tageskerzen - Verschiebung nach Stunden (z.B. Open Sessio). Ich habe begonnen, die csv-Archive in Excel zu bearbeiten, aber das ist sehr zeitaufwändig. Vielleicht kann jemand eine andere Lösung finden, um die Minuten zu verschieben und den Rest der TF neu zu berechnen.


Sie können das Skript period_converter verwenden und die Bedingung für den Candlestick-Ausschnitt ändern. Zum Beispiel auf einen Blick, um Kerzenständer für x Stunden und 10 Minuten zu erhalten:

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

ersetzen durch

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

Oder so)))