Aiuto per la codifica - pagina 759

 
Carissimo MLADEN

Per quanto riguarda gli avvertimenti durante la compilazione del "valore di ritorno di ''order send/select,modify,close'' sono stati corretti aggiungendo (bool dummyResult) precedentemente ma ora vedo che usi semplicemente (bool dummy), va bene per tutte e tutte le situazioni o il nuovo (bool dummy) per alcuni indicatori e situazioni specifiche?

saluti
 
mntiwana:
Carissimo MLADEN

Per quanto riguarda gli avvertimenti durante la compilazione del "valore di ritorno di ''order send/select,modify,close'' sono stati corretti aggiungendo (bool dummyResult) precedentemente ma ora vedo che usi semplicemente (bool dummy), va bene per tutte e tutte le situazioni o il nuovo (bool dummy) per alcuni indicatori e situazioni specifiche?

saluti
Di solito questi avvertimenti sono benigni.

Ciò che si usa per controllare realmente se le operazioni sugli ordini sono a posto è GetLastError() (dato che fornisce molti più dettagli del semplice booleano che il ritorno di default delle operazioni sugli ordini restituisce) - quindi, sì, è OK, e poi, se sono necessari più dettagli per un possibile errore, allora, in tutti i modi, si dovrebbe usare GetLastError()
 
wojtekpaul:

(cosa faremo dopo il 31 gennaio?) :(

WojtekPaul,

In che senso?

 
chrisstoff:

WojtekPaul,

In che senso?

Intendeva questo: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Ma guarda anche questo post: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089
 
mladen:
Di solito questi avvertimenti sono benigni.

Ciò che viene usato per controllare realmente se le operazioni di ordine sono OK è GetLastError() (poiché fornisce molti più dettagli del semplice ritorno booleano che il ritorno predefinito dalle operazioni di ordine restituisce) - quindi, sì, è OK, e poi, se sono necessari più dettagli per un possibile errore allora, in tutti i modi, GetLastError() dovrebbe essere usato
Carissimo MLADEN

Grazie per la guida d'aiuto.

saluti
 
mladen:
Intendeva questo: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Ma controlla anche questo post: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089

Mladen,

Grazie per le informazioni. Questo è / era il mio uno dei forum più favorevoli, quindi è una brutta notizia anche per me. Tuttavia, ci sono altri posti con forum e chat già pronti in rete. (Ho messo un esempio nel thread "Forex-TSD sta per essere chiuso...").

 

Ciao a tutti,


Ho bisogno di un codificatore per mettere una freccia con allarme per questa extrategia. Manualmente questa strategia sta dando il 100% di vittoria.


Di seguito il link alla strategia.

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

Messaggio #29

Obrigado.

 

Caro Mladen, è possibile che le due seguenti funzioni:

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); )
dove ma_ema è definito di seguito:
#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]);
}
restituiscano valori diversi (per lo stesso MAPeriod e i)?
che iEma funziona in modo leggermente diverso dall'EMA integrato?
 
wojtekpaul:

Caro Mladen, è possibile che le due seguenti funzioni:

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); )
dove
#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]);
}
restituiscano valori diversi (per lo stesso MAPeriod e i)?
che iEma funziona in modo leggermente diverso dall'EMA integrato?
L'EMA dipende dai valori precedenti. Se hai calcolato i valori sull'intera serie, dovrebbero restituire valori molto simili. In caso contrario (se hai provato a calcolare un solo valore), non saranno gli stessi poiché la iMA(), dietro le tende, calcolerà l'intera serie, mentre la iCustomMa() calcolerà solo i valori che hai richiesto.

Fate un loop di iCustomMa() su tutta la serie, e i risultati dovrebbero essere gli stessi


PS: quella iEma() è obsoleta. La nuova versione va così (non cambierà i valori, ma è a "prova di modalità rigorosa")
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]);
}
 

Grazie mille per la tua veloce risposta! Potresti per favore dirmi dove posso

trovare il codice attuale delle medie mobili:

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
};

Per quanto ne so questa è l'ultima lista di medie mobili disponibili come codice aperto

(le altre MA sono già in formato ex4).