[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 44

 
artmedia70:

Geben Sie mir noch einmal den Teil des Indikatorcodes an, in den Sie das alles einfügen möchten. Aber... Sie brauchen den Puffer nicht zu vergrößern - Sie müssen den Zeiger auf die Pufferzelle verschieben, in die Sie den Wert setzen wollen.

int k=Vnf2;
   for (i=Vnf2;i>0;i--)
    {
    ArrayResize(Buf_DN,Vnf2+1);
    Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);
     k--;
    }
Danach hängt sich das Terminal auf
 
demlin:
Danach hängt sich das Terminal auf

faul, zeigen Sie den gesamten Code zusammen mit
EquationDirect
 
sergeev:

faul, zeigen Sie den gesamten Code zusammen mit
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Green     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

double Buf_UP[],Buf_DN[];             // Объявление массивов (под буферы индикатора)

extern int History=21;        // Колич.баров в расчётной истории
extern int M= 3;           // начальный бар с которого начинаем поиск фракталов в цикле.
int    i,k;                // номера баров в циклах.
int    Vnf3,Vnf2,Vnf1;     // номера реперных фракталов (1-ый справа на графике на нисходящем тренде).
int    VnfL3,VnfL2,VnfL1;  // номера реперных фракталов (1-ый справа на графике на восходящем тренде).
int    VFN,VFNL;           // счетчик найденных фракталов.
int    Md,MdL;             // счетчики кол-ва модификаций

double VMF1,VMF2;     // промежуточные значения верхних фракталов на нисходящем тренде.
double VMFL1,VMFL2;  // промежуточные значения нижних фракталов на восходящем тренде.
double VlFl_L;             // Min значение ближайшего нижнего фрактала на тренде вниз
double VlFl_H;             // Max значение ближайшего верхнего фрактала на тренде вверх
datetime tim1_L;           // Время ближайшего нижнего фрактала после нисходящего тренда 
datetime timL1_H;          // Время ближайшего верхнего фрактала после восходящего тренда 

datetime tim1,tim2,tim3;   // время для построения линий вилки Чувашова.
datetime timL1,timL2,timL3;// время для построения линий вилки Чувашова.

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0,Buf_UP);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);// Стиль линии
   SetIndexBuffer(1,Buf_DN);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()

  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   for (i=2;i<=History;i++)
    {//цикл
    if(High[i]>High[i+1] &&High[i]>High[i-1]&&High[i]>Close[i-2])
     {//фрактал
      VFN++;           // счетчик найденного фрактала.
      // ------------------------------------------------------------+
      if(VFN==1)       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        {// f1
           Vnf1=i;        // запоминаем номер Max бара найденного фрактала.
           VMF1=High[i];  // запоминаем Max значение 1-ого найденного фрактала.
           tim1=iTime(NULL,0,i);        // запоминаем время 1-ой опорной точки.
         }//-f1
    // --------------------------------------------------------------+
    if(VFN==2)        // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      {// f2
          VMF2=High[i];    // запоминаем Max значение 2-ого найденного фрактала.
          if(VMF2>VMF1)    // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              Vnf2=i;      // запоминаем номер Max бара найденного фрактала.
              tim2=iTime(NULL,0,i);      // запомним время 2-ой опорной точки.
            }
            else VFN=VFN-1;
       }//-f2
    // --------------------------------------------------------------+
    //int k=0;
    Comment("2 значение ",EquationDirect(Vnf2, VMF2, Vnf1,VMF1,0));
   // Comment("Его значение= ",VMF1);
   //int k=Vnf2;
   //for (i=Vnf2;i>0;i--)
   // {
  //  ArrayResize(Buf_DN,Vnf2+1);
  //  Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);
   //  k--;
   // }
    

// ------------------------------------------------------------------+
   if(VFN==2) break; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    }//-фрактал                      
   }//-цикл 
//----

for (i=2;i<=History;i++)
    {//цикл
    if(Low[i]<Low[i+1] &&Low[i]<Low[i-1]&&Low[i]<Close[i-2])
     {//фрактал
      VFNL++;           // счетчик найденного фрактала.
      // ------------------------------------------------------------+
      if(VFNL==1)       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        {// f1
           VnfL1=i;        // запоминаем номер Max бара найденного фрактала.
           VMFL1=Low[i];  // запоминаем Max значение 1-ого найденного фрактала.
           
           timL1=iTime(NULL,0,i);        // запоминаем время 1-ой опорной точки.
         }//-f1
    // --------------------------------------------------------------+
    if(VFNL==2)        // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      {// f2
          VMFL2=Low[i];    // запоминаем Max значение 2-ого найденного фрактала.
          if(VMFL2<VMFL1)    // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              VnfL2=i;      // запоминаем номер Max бара найденного фрактала.
              timL2=iTime(NULL,0,i);      // запомним время 2-ой опорной точки.
            }
            else VFNL=VFNL-1;
       }//-f2
    // --------------------------------------------------------------+

// ------------------------------------------------------------------+
   if(VFN==2) break; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    }//-фрактал                      
   }//-цикл 


DelLine();DelLineH();CreateLine();CreateLineH();
   return(0);
  }
//+------------------------------------------------------------------+

void DelLine()        // Удаление трендовых линий Sell и значков для вилки Чувашова 
   {
   ObjectDelete("Tr_down1");
  // ObjectDelete("Tr_down2");
  // ObjectDelete("Frak_1");
   //ObjectDelete("Frak_2");
   //ObjectDelete("Frak_3");
   }

void DelLineH()        // Удаление трендовых линий BUY и значков для вилки Чувашова 
   {
   ObjectDelete("Tr_up1");
   //ObjectDelete("Tr_up2");
   //ObjectDelete("Fr_1");
   //ObjectDelete("Fr_2");
   //ObjectDelete("Fr_3");
   }
void CreateLine()       // Создание и отрисовка трендовых линий Sell линий вилки Чувашова 
   {
   ObjectCreate("Tr_down1",OBJ_TREND,0,tim2,VMF2,tim1,VMF1);
   ObjectSet("Tr_down1",OBJPROP_COLOR,Red);
   ObjectSet("Tr_down1",OBJPROP_WIDTH,1);  // тонкой линией и 
   ObjectSet("Tr_down1",OBJPROP_STYLE,STYLE_SOLID);// пунктиром
   //ObjectCreate("Tr_down2",OBJ_TREND,0,tim2,VMF2,tim1,VMF1);
   //ObjectSet("Tr_down2",OBJPROP_COLOR,Aqua);
  // ObjectSet("Tr_down2",OBJPROP_WIDTH,1);  // тонкой линией и 
  // ObjectSet("Tr_down2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }
  
   void CreateLineH()       // Создание и отрисовка трендовых линий BUY линий вилки Чувашова 
   {
   ObjectCreate("Tr_up1",OBJ_TREND,0,timL2,VMFL2,timL1,VMFL1);
   ObjectSet("Tr_up1",OBJPROP_COLOR,Green);
   ObjectSet("Tr_up1",OBJPROP_WIDTH,1);  // тонкой линией и 
   ObjectSet("Tr_up1",OBJPROP_STYLE,STYLE_SOLID);// пунктиром
   //ObjectCreate("Tr_up2",OBJ_TREND,0,timL2,VMFL2,timL1,VMFL1);
   //ObjectSet("Tr_up2",OBJPROP_COLOR,Aqua);
   //ObjectSet("Tr_up2",OBJPROP_WIDTH,1);  // тонкой линией и 
  // ObjectSet("Tr_up2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }
   
   double EquationDirect(double x1, double y1, double x2, double y2, double x) //прямая линия
   {
if (x2==x1) return(y1);
return((y2-y1)/(x2-x1)*(x-x1)+y1);}
 
sergeev:

faul, zeigen Sie den gesamten Code zusammen mit
Ich habe es schon selbst herausgefunden - ich habe die Schleife an die falsche Stelle gesetzt, ich habe es erst jetzt gesehen. Entschuldigung für die Störung
 

und sollte sich übrigens auch nicht innerhalb der Schleife befinden.

ArrayResize(Buf_DN,Vnf2+1);
 
sergeev:

Übrigens sollte sie auch nicht innerhalb der Schleife liegen.

Danke für den Kommentar, ich werde ihn natürlich entfernen.
 

Grafische Darstellung der "Lebensdauer" von Aufträgen


Avatar
1
belperson 03.08.2011 22:44
Hallo, ich habe eine Frage: wenn mein EA öffnet Aufträge, die an der Haltestelle geschlossen werden, kann ich meine Mt4 einrichten, um Positionen "Leben" wie in der eingebauten Strategie-Tester, d.h. anzuzeigen: öffnen und schließen Punkte (alles ist hier klar) mit Pfeilen und verbinden sie mit einer gepunkteten Linie beim Schließen? Vielen Dank im Voraus für alle Antworten in diesem Fall)
 

Eröffnungsreihenfolge nach Zeit


Avatar
1
Mega4alik 03.08.2011 23:45

Wie kann ich meinen EA dazu bringen, ein Geschäft in einer bestimmten Sekunde zu öffnen?

Gibt es eine Funktion, die jede Sekunde abgearbeitet wird?

 
Guten Tag,

Ich bin auf der Suche nach einem Indikator, der nach Kerzen wie der im Chart (oben offen, unten geschlossen und umgekehrt) einer bestimmten Größe sucht. In der Basis schien alles zu zerbrechen, was nicht gefunden wurde. Bitte teilen Sie uns mit, ob jemand ähnliche Erfahrungen gemacht hat. Vielen Dank im Voraus.


 

Guten Tag.

Bitte helfen Sie mir, die Werte von Up_Line und Down_Line des ExTrendv2-Indikators (im Anhang) in den Expert Advisor zu extrahieren.

Ich versuche es auf folgende Weise:

For Up_Line iCustom(NULL, 0, "ExTrendv2", 0, 0,1)

für Down_Line iCustom(NULL, 0, "ExTrendv2", 0, 1,1)

scheitert.

Dateien:
extrendv2.mq4  8 kb
Grund der Beschwerde: