![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
mas já vi muitas pessoas postarem códigos aqui que, tenho certeza, nem todos foram escritos por eles.
Na verdade, o código que anexei acima também está disponível em seu tópico https://www.mql5.com/en/forum/180648/page623, Comentário # 9337
Por favor, você pode me ajudar? obrigado.
E você também não vê este post: https: //www.mql5.com/en/forum/180648/page623? Por favor, fale sério ...
Não estou dizendo que o código postado por outros usuários é codificado por eles (na verdade, a maioria não é)
O que estou dizendo é que eu (como em mim, "mladen") não vou tocar o código roubado (descompilado) - e você verá muitos, muitos posts (como aquele que você "não viu") onde eu disse isso. Portanto, a menos que você possa postar o código original, eu não vou fazer nada com tal código. Gostando ou não, isso é o que é... tudo de bom.
como, por exemplo, pr_haclose? As soluções mais simples
iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
Caro Mladen, como usar as funções iMA ou iCustomMa com um preço estendido,
como, por exemplo, pr_haclose? As soluções mais simples
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);
}
Olá, Mladen,
Você poderia adicionar buffers para cada cor diferente?
Obrigado!
É preciso usar o custom get price (em vez de usar o iMA() para recuperar o preço). Em algumas das versões mais recentes, você pode obter a função getPrice()
portanto, a fórmula
Assim :
Assim :
Essas quatro quantidades se referem a
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
Essas quatro quantidades se referem a
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
OK, muito obrigado por sua ajuda! :)
(o que faremos depois de 31 de janeiro?) :(
Você pode codificar este código para o indicador mt4 .... é na codificação Amibroker AFL ... Obrigado alot
_SECTION_BEGIN("Market Trend");
SetChartOptions(0,chartShowArrows|chartShowDates);
function predictCycle( arg1, arg2 )
{
local var1, var2;
resultado = arg1 + arg2;
resultado do retorno;
}
Predicto=0;
P = ParamField("Campo de preços",-1);
Períodos = Param("Períodos", 15, 2, 300, 1, 10 );
Predict = PredictCycle(C,Periods);
Comprar = Prever>Ref(Predizer,-1);
Vender = Prever<Ref(Predizer,-1);
Comprar = ExRem(Comprar,Vender);
Vender = ExRem(Vender,Comprar);
Lote(Prever, "Prever",corBranco,estiloLinha | estiloCerto);
PlotShapes(IIf(Compra, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-5);
PlotShapes(IIf(Venda, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-5);
_SECTION_END();