Fragen von einem "Dummy" - Seite 266

 
amidmir:
Wie hoch ist der Wechselkurs der Kredite?

1 Kredit = 1 $

 
DC2008:

Verwenden Sie dynamische Arrays oder ändern Sie die Dimensionalität von statischen Arrays:

Herzlichen Dank!
 

Ich versuche, den Preis des letzten Fraktals im EA zu finden, aber es funktioniert nicht...

int Fractals;
double UpVal[];
double DnVal[];
Fractals=iFractals(Symbol(),TimeFrame);
if(Fractals==INVALID_HANDLE) Print("HandleError = ",_LastError);
double FractalUp()
{
//-----
  CopyBuffer(Fractals,0,0,5,UpVal);
  ArraySetAsSeries(UpVal,true);
//-----
  for(i=0; i < 13; i++)
  {
    if(UpVal[i] != 0) return(NormalizeDouble(UpVal[i],_Digits));
  }
  return(0);
}
double FractalDn()
{
//-----
  CopyBuffer(Fractals,1,0,5,DnVal);
  ArraySetAsSeries(DnVal,true);
//-----
  for(i=0; i < 13; i++)
  {
    if(DnVal[i] != 0) return(NormalizeDouble(DnVal[i],_Digits));
  }
  return(0);
}
 
G001:

Ich versuche, den Preis des letzten Fraktals im EA zu finden, aber etwas funktioniert nicht...

Sie gehen über das Feld hinaus. Versuchen Sie es so:

double FractalUp()
{
//-----
  int n=100; 
  CopyBuffer(Fractals,0,0,n,UpVal);
  ArraySetAsSeries(UpVal,true);
//-----
  for(i=0; i < n-1; i++)
  {
    if(UpVal[i] != 0) return(NormalizeDouble(UpVal[i],_Digits));
  }
  return(0);
}
 
DC2008:

Sie gehen über das Feld hinaus. Versuchen Sie es auf diese Weise:

Ich danke Ihnen. Leider funktioniert es auch nicht richtig.
 
G001:
Ich danke Ihnen. Leider funktioniert es auch nicht richtig.

wenn es kein Fraktal gibt, wird EMPTY_VALUE statt 0 zurückgegeben

Arbeitsoption im Skript

input ENUM_TIMEFRAMES TimeFrame=PERIOD_CURRENT;
void OnStart()
  {
//---
int Fractals=iFractals(_Symbol,TimeFrame);
if(Fractals==INVALID_HANDLE) Print("HandleError = ",_LastError);
 double DnVal[];
   CopyBuffer(Fractals,1,0,30,DnVal);
  ArraySetAsSeries(DnVal,true);
//-----
  for(int i=0; i < 30; i++)
  {
    if(DnVal[i] != EMPTY_VALUE) Print(NormalizeDouble(DnVal[i],_Digits));
  }
  
  }
//+------------------------------------------------------------------+
 
_Techno_:

wenn es kein Fraktal gibt, wird EMPTY_VALUE statt 0 zurückgegeben

Arbeitsoption im Skript

Ok, es funktioniert... :) Ich danke Ihnen.
 

Guten Tag!

Parsing des folgenden Artikels -https://www.mql5.com/ru/articles/35

Wenn ich den angehängten Indikator an das Diagramm anhänge, zeigt er irgendeinen Unsinn an und nicht das, was er eigentlich anzeigen soll.

Was ist der Grund dafür?

#property copyright "Denis Zyatkevich"
#property description "Это индикатор, вычисляющий уровни TakeProfit на основе"
#property description "средней волатильности рынка. При расчете индикатора"
#property description "используется значение индикатора Average True Range (ATR),"
#property description "вычисленного по дневным ценовым данным. Значение"
#property description "индикатора откладывается от минимального и"
#property description "максимального значения цены за день."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  C'127,191,127'
#property  indicator_style1  STYLE_SOLID
#property  indicator_label1  "Buy TP"
#property  indicator_type2   DRAW_LINE
#property  indicator_color2  C'191,127,127'
#property  indicator_style2  STYLE_SOLID
#property  indicator_label2  "Sell TP"

input int             ATRper       = 5;         //ATR Period
input ENUM_TIMEFRAMES ATRtimeframe = PERIOD_D1; //Indicator timeframe

double bu[],bd[];
int hATR;

void OnInit()
  {
   SetIndexBuffer(0,bu,INDICATOR_DATA);
   SetIndexBuffer(1,bd,INDICATOR_DATA);
   hATR=iATR(NULL,ATRtimeframe,ATRper);
  }

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[])

  {
   int i,day_n,day_t;
   double atr[],h_day,l_day;

   CopyBuffer(hATR,0,0,2,atr);
   ArraySetAsSeries(atr,true);

   for(i=prev_calculated;i<rates_total;i++)
     {
      day_t=int(time[i]/PeriodSeconds(ATRtimeframe));
      if(day_n<day_t)
        {
         day_n=day_t;
         l_day=low[i];
         h_day=high[i];
        }
        else
        {
         if(high[i]>h_day) h_day=high[i];
         if(low[i]<l_day) l_day=low[i];
        }
      bu[i]=l_day+atr[1];
      bd[i]=h_day-atr[1];
     }
   return(rates_total);
  }

void OnDeinit(const int reason)
  {
   IndicatorRelease(hATR);
  }
Знакомство с MQL5: написание простого советника и индикатора
Знакомство с MQL5: написание простого советника и индикатора
  • 2010.03.16
  • Denis Zyatkevich
  • www.mql5.com
В этой статье проведен краткий обзор языка MQL5, приведен пример написания советника и индикатора. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.
 
pavelrev:

Guten Tag!

Parsing des folgenden Artikels -https://www.mql5.com/ru/articles/35

Wenn ich den angehängten Indikator an das Diagramm anhänge, zeigt er irgendeinen Unsinn an und nicht das, was er eigentlich anzeigen soll.

Was ist der Grund dafür?

In der Ausgabe sieht es so aus, als ob CopyBuffer nicht richtig funktionieren will.

Werfen Sie ATR auf dem Chart, tf D1, dann dieser Indikator, versuchen tf ändern, sollte funktionieren.

 
Silent:

Es scheint, dass CopyBuffer an Wochenenden nicht richtig funktionieren will.

Setzen Sie ATR auf den Chart, diff D1, dann diesen Indikator, versuchen diff ändern, sollte funktionieren.

An Wochentagen, wenn es Angebote gibt, ist es das Gleiche.

Manchmal rutscht sie aus und zeigt an, was ich brauche, aber wenn ich die TF ändere oder ein neues Angebot bekomme, fängt sie wieder an, Unsinn zu machen.