Hilfe bei der Codierung - Seite 759

 
Liebste MLADEN

Was die Warnungen beim Kompilieren von "Rückgabewert von ''order send/select,modify,close'' anbelangt, so wurden diese zuvor durch Hinzufügen von (bool dummyResult) korrigiert, aber jetzt sehe ich, dass Sie einfach (bool dummy) verwenden, ist das für alle und jede Situation in Ordnung oder das neue (bool dummy) für einige spezifische Indikatoren und Situationen?

Grüße
 
mntiwana:
Liebste MLADEN

Was die Warnungen beim Kompilieren von "Rückgabewert von ''order send/select,modify,close'' anbelangt, so wurden diese zuvor durch Hinzufügen von (bool dummyResult) korrigiert, aber jetzt sehe ich, dass Sie einfach (bool dummy) verwenden, ist das für alle und jede Situation in Ordnung oder ist das neue (bool dummy) für einige spezifische Indikatoren und Situationen gedacht?

Grüße
Normalerweise sind diese Warnungen harmlos.

Um wirklich zu prüfen, ob die Order-Operation(en) in Ordnung sind, wird GetLastError() verwendet (da es viel mehr Details liefert als die einfache boolsche Rückgabe, die die Standard-Rückgabe von Order-Operationen liefert) - also ja, es ist in Ordnung, und wenn mehr Details für einen möglichen Fehler benötigt werden, dann sollte auf jeden Fall GetLastError() verwendet werden
 
wojtekpaul:

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

WojtekPaul,

Wie meinen Sie das?

 
chrisstoff:

WojtekPaul,

Wie meinen Sie das?

Er meinte dies: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Aber schau dir auch diesen Beitrag an: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089
 
mladen:
Normalerweise sind diese Warnungen harmlos.

Um wirklich zu prüfen, ob die Auftragsoperation(en) in Ordnung sind, wird GetLastError() verwendet (da es viel mehr Details liefert als die einfache boolesche Rückgabe, die die Standardrückgabe von Auftragsoperationen liefert) - also, ja, es ist in Ordnung, und wenn mehr Details für einen möglichen Fehler benötigt werden, dann sollte auf jeden Fall GetLastError() verwendet werden
Liebste MLADEN

Vielen Dank für die Hilfe.

Mit freundlichen Grüßen
 
mladen:
Er meinte dies: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Aber sehen Sie sich auch diesen Beitrag an: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089

Mladen,

Vielen Dank für die Information. Dies ist / war eines der beliebtesten Foren für mich, daher ist es auch für mich eine schlechte Nachricht. Nichtsdestotrotz gibt es auch noch andere Foren und Chats im Netz, die schon fertig sind. (Ich habe ein Beispiel in den "Forex-TSD wird eingestellt..."-Thread gestellt.)

 

Hallo an alle,


Ich brauche einen Coder, um einen Pfeil mit Alarm für diese extrategia zu setzen. Manuell ist diese Strategie geben 100% Sieg.


Unten ist der Link zu der Strategie.

http://www.binaryoptionsedge.com/topic/1879-high-power-option-2015/page-2#entry108014

Beitrag #29

Obrigado.

 

Lieber Mladen, ist es möglich, dass die beiden folgenden Funktionen:

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
wobei ma_ema unten definiert ist:
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
unterschiedliche Werte zurückgeben (für dieselbe MAPeriode und i)? Würde das bedeuten
dass iEma geringfügig anders funktioniert als der eingebaute EMA?
 
wojtekpaul:

Lieber Mladen, ist es möglich, dass die beiden folgenden Funktionen:

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
wobei
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
unterschiedliche Werte liefern (für die gleiche MAPeriode und i)? Würde das bedeuten
dass iEma ein wenig anders funktioniert als der eingebaute EMA?
EMA hängt von den vorherigen Werten ab. Wenn Sie die Werte für die gesamte Serie berechnet haben, sollten sie sehr ähnliche Werte liefern. Wenn nicht (wenn Sie versucht haben, nur einen Wert zu berechnen), werden sie nicht gleich sein, da iMA() hinter den Kulissen die gesamte Serie berechnet, während iCustomMa() nur die Werte berechnet, die Sie angefordert haben.

Führen Sie iCustomMa() in einer Schleife über die gesamte Serie aus, und die Ergebnisse sollten identisch sein.


PS: Die Funktion iEma() ist veraltet. Die neue Version funktioniert wie folgt (sie wird die Werte nicht ändern, aber sie ist "strict mode proof")
double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
  
   workEma[r][instanceNo] = price;
   if (r>0 && period>1)
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+(2.0/(1.0+period))*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
 

Vielen Dank für Ihre schnelle Antwort! Könnten Sie mir bitte sagen, wo ich den

ich den aktuellen Code der gleitenden Durchschnitte finden kann:

enum enMaTypes
{
   ma_sma,     // simple moving average - SMA
   ma_ema,     // exponential moving average - EMA
   ma_dsema,   // double smoothed exponential moving average - DSEMA
   ma_dema,    // double exponential moving average - DEMA
   ma_tema,    // tripple exponential moving average - TEMA
   ma_smma,    // smoothed moving average - SMMA
   ma_lwma,    // linear weighted moving average - LWMA
   ma_pwma,    // parabolic weighted moving average - PWMA
   ma_alxma,   // Alexander moving average - ALXMA
   ma_vwma,    // volume weighted moving average - VWMA
   ma_hull,    // Hull moving average
   ma_tma,     // triangular moving average
   ma_sine,    // sine weighted moving average
   ma_linr,    // linear regression value
   ma_ie2,     // IE/2
   ma_nlma,    // non lag moving average
   ma_zlma,    // zero lag moving average
   ma_lead,    // leader exponential moving average
   ma_ssm,     // super smoother
   ma_smoo     // smoother
};

Soweit ich weiß, ist dies die letzte Liste der gleitenden Durchschnitte, die als offener Code verfügbar ist

(andere MAs sind bereits im ex4-Format).

Grund der Beschwerde: