Hilfe bei der Codierung - Seite 758

 
anees:

aber ich habe gesehen, dass viele Leute hier Codes gepostet haben, von denen ich sicher bin, dass sie nicht alle von ihnen geschrieben wurden.

In der Tat ist der Code, den ich oben angehängt habe, auch in Ihrem Thread https://www.mql5.com/en/forum/180648/page623, Kommentar # 9337 verfügbar.

Können Sie mir bitte helfen? danke.

Und Sie übersehen auch diesen Beitrag: https: //www.mql5.com/en/forum/180648/page623? Bitte, seien Sie ernsthaft ...


Ich behaupte nicht, dass der von anderen Nutzern gepostete Code von ihnen selbst geschrieben wurde (das meiste ist es nämlich nicht).

Was ich sage, ist, dass ich (also ich, "mladen") gestohlenen (dekompilierten) Code nicht anfassen werde - und du wirst viele, viele Beiträge sehen (wie den, den du "nicht gesehen" hast), in denen ich das gesagt habe. Solange Sie also nicht den Originalcode vorlegen können, werde ich nichts mit einem solchen Code machen. Ob es Ihnen gefällt oder nicht, das ist es, was ist ... alles Gute

 
Lieber Mladen, wie kann man iMA oder iCustomMa Funktionen mit einem erweiterten Preis verwenden,
wie z.B. pr_haclose? Die einfachsten Lösungen
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
Warnungen zurückgeben.
 
wojtekpaul:
Lieber Mladen, wie kann man iMA oder iCustomMa Funktionen mit einem erweiterten Preis verwenden,
wie z.B. pr_haclose? Die einfachsten Lösungen
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
Warnungen zurückgeben.
Sie müssen eine benutzerdefinierte Preisabfrage verwenden (anstatt iMA() zum Abrufen des Preises zu verwenden). In einigen der neuesten Versionen können Sie die Funktion getPrice() verwenden, aber auf jeden Fall sieht es so aus:
enum enPrices
{
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_haclose,    // Heiken ashi close
   pr_haopen ,    // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,      // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,  // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,  // Heiken ashi average
   pr_hamedianb,  // Heiken ashi median body
   pr_hatbiased,  // Heiken ashi trend biased price
   pr_hatbiased2  // Heiken ashi trend biased (extreme) price
};

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
//

#define priceInstances 1
double workHa[][priceInstances*4];
double getPrice(int tprice, const double& open[], const double& close[], const double& high[], const double& low[], int i, int instanceNo=0)
{
  if (tprice>=pr_haclose)
   {
      if (ArrayRange(workHa,0)!= Bars) ArrayResize(workHa,Bars); instanceNo*=4;
         int r = Bars-i-1;
        
         //
         //
         //
         //
         //
        
         double haOpen;
         if (r>0)
                haOpen  = (workHa[r-1][instanceNo+2] + workHa[r-1][instanceNo+3])/2.0;
         else   haOpen  = (open[i]+close[i])/2;
         double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0;
         double haHigh  = MathMax(high[i], MathMax(haOpen,haClose));
         double haLow   = MathMin(low[i] , MathMin(haOpen,haClose));

         if(haOpen  <haClose) { workHa[r][instanceNo+0] = haLow;  workHa[r][instanceNo+1] = haHigh; }
         else                 { workHa[r][instanceNo+0] = haHigh; workHa[r][instanceNo+1] = haLow;  }
                                workHa[r][instanceNo+2] = haOpen;
                                workHa[r][instanceNo+3] = haClose;
         //
         //
         //
         //
         //
        
         switch (tprice)
         {
            case pr_haclose:     return(haClose);
            case pr_haopen:      return(haOpen);
            case pr_hahigh:      return(haHigh);
            case pr_halow:       return(haLow);
            case pr_hamedian:    return((haHigh+haLow)/2.0);
            case pr_hamedianb:   return((haOpen+haClose)/2.0);
            case pr_hatypical:   return((haHigh+haLow+haClose)/3.0);
            case pr_haweighted:  return((haHigh+haLow+haClose+haClose)/4.0);
            case pr_haaverage:   return((haHigh+haLow+haClose+haOpen)/4.0);
            case pr_hatbiased:
               if (haClose>haOpen)
                     return((haHigh+haClose)/2.0);
               else  return((haLow+haClose)/2.0);        
            case pr_hatbiased2:
               if (haClose>haOpen)  return(haHigh);
               if (haClose<haOpen)  return(haLow);
                                    return(haClose);        
         }
   }
  
   //
   //
   //
   //
   //
  
   switch (tprice)
   {
      case pr_close:     return(close[i]);
      case pr_open:      return(open[i]);
      case pr_high:      return(high[i]);
      case pr_low:       return(low[i]);
      case pr_median:    return((high[i]+low[i])/2.0);
      case pr_medianb:   return((open[i]+close[i])/2.0);
      case pr_typical:   return((high[i]+low[i]+close[i])/3.0);
      case pr_weighted:  return((high[i]+low[i]+close[i]+close[i])/4.0);
      case pr_average:   return((high[i]+low[i]+close[i]+open[i])/4.0);
      case pr_tbiased:  
               if (close[i]>open[i])
                     return((high[i]+close[i])/2.0);
               else  return((low[i]+close[i])/2.0);        
      case pr_tbiased2:  
               if (close[i]>open[i]) return(high[i]);
               if (close[i]<open[i]) return(low[i]);
                                     return(close[i]);        
   }
   return(0);
}  
 

Hallo Mladen,

könntest du Puffer für jede einzelne Farbe hinzufügen?

Danke!

Dateien:
 
mladen:

Sie müssen die benutzerdefinierte Funktion getPrice() verwenden (anstatt die Funktion iMA() zum Abrufen des Preises zu verwenden). In einigen der neuesten Versionen können Sie die Funktion getPrice()

also wäre diese Formel
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
korrekt sein?
 
wojtekpaul:
Also wäre diese Formel
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
korrekt sein?
Nein

Etwa so:

iCustomMa(avgType,getPrice(pr_haclose,Open,Close,High,Low,i),avgPeriod,i,0);
 
mladen:
Zum Beispiel so:

...Open,Close,High,Low,...

Diese vier Größen beziehen sich auf

   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low

?
 
wojtekpaul:

Diese vier Größen beziehen sich auf

   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low

?
Nein. Wenn Sie sich die Funktion ansehen, beziehen sich die 4 Parameter auf 4 Arrays, die die Werte open, close, high und low enthalten. Sie versuchen, konstante Integer-Werte anstelle von Arrays zu verwenden, die in der Funktion erwartet werden. Bitte verwenden Sie die Funktion wie angegeben, dann wird sie funktionieren.
 

OK, vielen Dank für Ihre Hilfe :)

(was werden wir nach dem 31. Januar tun?) :(

 
Lieber Mladen,

Können Sie plz Code dies für mt4 Indikator .... seine in Amibroker AFL Codierung ... Vielen Dank



_SECTION_BEGIN("Markttrend");
SetChartOptions(0,chartShowArrows|chartShowDates);

function predictCycle( arg1, arg2 )
{
local var1, var2;

ergebnis = arg1 + arg2;

return result;
}

Vorhersage=0;
P = ParamField("Preisfeld",-1);
Perioden = Param("Perioden", 15, 2, 300, 1, 10 );
Vorhersage = VorhersageZyklus(C,Perioden);

Kaufen = Vorhersage>Ref(Vorhersage,-1);
Verkaufen = Vorhersage<Ref(Vorhersage,-1);

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

Plot(Vorhersage, "Vorhersage",colorWhite,styleLine | styleThick);

PlotShapes(IIf(Kaufen, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-5);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-5);

_SECTION_END();