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

 

Hallo!

Können Sie mir bitte sagen, ob es möglich ist, den Wert einer Trendlinie, die programmgesteuert in ein Diagramm eingezeichnet wird, am gewünschten Punkt abzulesen (wiederum programmgesteuert)?

 
demlin:

Hallo!

Können Sie mir bitte sagen, ob es möglich ist, den Wert einer Trendlinie, die programmgesteuert in ein Diagramm eingezeichnet wird, am gewünschten Punkt abzulesen (wiederum programmgesteuert)?

Vor einiger Zeit habe ich einen Artikel geschrieben, in dem die Trendlinie verwendet wurde, um den richtigen Punkt im Diagramm zu finden. Schauen Sie sich um, vielleicht finden Sie etwas für sich... :)
 
demlin:

Hallo!

Können Sie mir bitte sagen, ob es möglich ist, den Wert einer Trendlinie, die programmgesteuert in ein Diagramm eingezeichnet wird, am gewünschten Punkt abzulesen (wiederum programmgesteuert)?


Das scheint unmöglich zu sein, aber wenn ich es wirklich will, kann ich es wohl...:-Р
 
Roman.:

Sie scheinen dazu nicht in der Lage zu sein, aber wenn man wirklich will, kann man es...:-Р

Das würde mir sehr gefallen :)

Ich wollte einen Indikator erstellen, aber da ich mich zum ersten Mal mit Indikatoren beschäftige, habe ich mich verlaufen. Die Linien werden so gezeichnet, wie sie sein sollten, aber ich kann keine Möglichkeit finden, das Array mit den Werten hineinzupressen. Letztendlich bin ich nicht weitergekommen.

 
artmedia70:
Ich habe einmal einen Artikel geschrieben, in dem ich die Trendlinie verwendet habe, um den richtigen Punkt im Diagramm zu finden. Schauen Sie sich um, vielleicht finden Sie etwas für sich... :)
Danke, ich habe die Funktion der geraden Linie, ich werde sie noch ein bisschen drehen.
 

Mit MoveFileA ging alles gut. Herzlichen Dank, TheXpert!

 
demlin:

Das würde mir sehr gefallen :)

Ich wollte einen Indikator erstellen, aber da ich mich zum ersten Mal mit Indikatoren beschäftige, habe ich mich verlaufen. Die Linien werden so gezeichnet, wie sie sein sollten, aber ich kann keine Möglichkeit finden, das Array mit den Werten hineinzupressen. Deshalb habe ich es nicht geschafft, sie einzuplanen.

Aber wenn Sie den Code gezeigt und mir gesagt hätten, was Sie wollen, hätten Sie vielleicht auf die Geradengleichung verzichten können... Es ist ein Indikator und alle notwendigen Daten sind in seinen Puffern... Obwohl ... :)
 
Ich glaube, ich habe eine Idee... Wenn Sie eine Trendlinie konstruiert haben, laufen Sie mit der Funktion Geradengleichung in der Schleife vom Wert ihres Startpunktes bis zum Wert ihres Endpunktes und geben Sie bei jedem Takt die von der Funktion Geradengleichung zurückgegebenen Werte in ein anderes, zu diesem Zweck erstelltes Indikator-Array ein. Nehmen Sie dann die Werte aus dem Array, indem Sie die Nummer des gewünschten Balkens verwenden. Es geht ungefähr so...
 
artmedia70:
Wenn Sie mir den Code zeigen und mir sagen würden, was Sie wollen, bräuchten Sie wahrscheinlich keine Geradengleichung... Es ist ein Indikator und alle notwendigen Daten sind in seinen Puffern ... Obwohl ... :)

Hier ist der Code, kopiert aus dem Tutorial von der gleichen Seite :)

#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

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()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   for (i=3;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
    // --------------------------------------------------------------+

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

for (i=3;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-ого найденного фрактала.
           //Comment("VMFL1=",VMFL1);
           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);// пунктиром 
   }

Ich möchte zwei Zeilen und lesen ihre Werte auf allen Bars über iCustom erhalten

 

Liebe Forumsmitglieder, Hilfe!

Ich benötige einen Indikator mit den folgenden Anforderungen: 1) Schnittpunkt zweier MAs (Sie können die Art des MAs, den Zeitraum des MAs, den MA, auf den er angewendet wird, sowie die Verschiebung wählen).

2) Der Indikator zeichnet einen Pfeil am Schnittpunkt.

3) Bei der Überquerung ertönt ein Piepton und eine E-Mail-Nachricht.

4) Das Signal wird nur einmal erzeugt. In dem Moment, in dem die MA.

Es gibt zwei Indikatoren: MA_Shift_Crossover_Alert.mq4 und 2MA CrossoverWithPrice_fixed.ex4

Dem ersten gefällt nicht, dass das Signal bei jeder Kerze und nach Überschreiten des MA gegeben wird. Der zweite akzeptiert keine Verschiebung des MA.

Gibt es eine Möglichkeit, dem zweiten Indikator die Möglichkeit der MA-Verschiebung hinzuzufügen?

Die Indikatoren sind im Archiv beigefügt.

Ich danke Ihnen.

Dateien: