![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
ma ho visto molte persone hanno postato codici qui che sono sicuro che non tutti sono stati scritti da loro.
Infatti, il codice che ho allegato sopra è anche disponibile sul tuo thread https://www.mql5.com/en/forum/180648/page623, Commento # 9337
Potete per favore aiutarmi? Grazie.
E non vedi anche questo post : https://www.mql5.com/en/forum/180648/page623? Per favore, sii serio ...
Non sto dicendo che il codice postato da altri utenti è codificato da loro (infatti, la maggior parte di esso non lo è)
Quello che sto dicendo è che io (cioè io, "mladen") non ho intenzione di toccare il codice rubato (decompilato) - e vedrai molti, molti post (come quello che "non hai visto") dove l'ho detto. Quindi, a meno che tu non possa postare il codice originale, non ho intenzione di fare nulla con tale codice. Che ti piaccia o no, questo è ciò che è ... tutto il meglio
come ad esempio pr_haclose? Le soluzioni più semplici
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
Caro Mladen, come utilizzare le funzioni iMA o iCustomMa con un prezzo esteso,
come ad esempio pr_haclose? Le soluzioni più semplici
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
{
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);
}
Ciao Mladen,
Potresti aggiungere dei buffer per ogni colore diverso?
Grazie!
È necessario utilizzare la funzione get price personalizzata (invece di utilizzare la funzione iMA() per recuperare il prezzo). In alcune delle ultime versioni è possibile ottenere la funzione getPrice()
quindi, questa formula
Così:
Come questo:
Queste quattro quantità si riferiscono a
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
Queste quattro quantità si riferiscono a
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
OK, grazie mille per il vostro aiuto! :)
(cosa faremo dopo il 31 gennaio?) :(
Puoi plz codice questo per mt4 indicatore .... suo in Amibroker AFL codifica ... Grazie mille
_SECTION_BEGIN("Market Trend");
SetChartOptions(0,chartShowArrows|chartShowDates);
funzione predictCycle( arg1, arg2 )
{
var1 locale, var2;
risultato = arg1 + arg2;
restituisce il risultato;
}
Predict=0;
P = ParamField("Campo prezzo",-1);
Periodi = Param("Periodi", 15, 2, 300, 1, 10 );
Predict = PredictCycle(C,Periods);
Buy = Predict>Ref(Predict,-1);
Sell = Predict<Ref(Predict,-1);
Buy = ExRem(Buy,Sell);
Vendere = ExRem(Vendere,Comprare);
Plot(Predict, "Predict",colorWhite,styleLine | styleThick);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-5);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-5);
_SECTION_END();