Como codificar? - página 81

 

Ajuda Necessária

Olá a todos os codificadores,

Por favor, diga-me o código como posso verificar o preço de acordo com as velas. Quero dizer, como posso verificar se a vela atual toca ou não a linha MA? e como posso codificar que a vela atual tem aberto, alto, baixo e fechado abaixo da linha MA. A sua ajuda será muito apreciada.

Cumprimentos.......!

 
arsenic786:
Olá a todos os codificadores,

Por favor, diga-me o código como posso verificar o preço de acordo com as velas. Quero dizer, como posso verificar se a vela atual toca ou não a linha MA? e como posso codificar que a vela atual tem aberto, alto, baixo e fechado abaixo da linha MA. A sua ajuda será muito apreciada.

Melhores cumprimentos.......!

Bem, para verificar a cruz você tem que comparar o preço de fechamento anterior, fechamento atual e valor médio móvel (assim iMa, Fechar[1], e Fechar[0]).

Mas para verificar se a vela está abaixo ou abaixo da média móvel, você precisa comparar o preço BAIXO e ALTO e o valor do iMa.

 

Indicador de tempo

Eu gostaria de construir um indicador, um elemento do qual é o tempo entre os carrapatos. Alguém pode me informar se esta função será possível incorporar ?

Obrigado

 

Varredura através de pares/tempo

Hi,

Gostarei de examinar alguns dos pares, e alguns dos prazos dos pares para detectar o ambiente atual (tendências, limites de alcance, etc.) usando indicadores como ADX. Isto é para me ajudar a selecionar o melhor par/tempo para negociar com base no meu conjunto de critérios.

A péssima saída é anexar um ambiente que detecte EA a TODOS os gráficos, fazer com que eles escrevam os resultados em um arquivo e depois fazer minha própria comparação no arquivo. No entanto, isto será muito tedioso e manual!

É possível anexar minha EA a apenas 1 gráfico, e fazer com que a EA obtenha os dados de todos os pares e prazos usando as funções Time Series, tais como iClose, iOpen etc, e depois alimentar os meus indicadores com o preço?

Alguém prevê algum problema com o segundo método? O processamento da CPU envolve muito? O tempo necessário para executar a verificação será muito longo, etc.? Eu não preciso de um período de tempo mais fino do que 5 minutos.

Sou novo na EA e, portanto, não conheço o desempenho do mesmo. Qualquer ajuda será muito apreciada. Saúde!!

 

Anexar programticamente um EA ao gráfico

Hi,

é possível anexar uma EA a um gráfico programático? Digamos que atualmente estou executando a EA1 e quero que ela seja anexada a outro gráfico sobre o cumprimento de certos critérios. Isso é possível?

 
meokoken:
Hi,

Gostarei de examinar alguns dos pares, e alguns dos prazos dos pares para detectar o ambiente atual (tendências, limites de alcance, etc.) usando indicadores como ADX. Isto é para me ajudar a selecionar o melhor par/tempo para negociar com base no meu conjunto de critérios.

A péssima saída é anexar um ambiente que detecte EA a TODOS os gráficos, fazer com que eles escrevam os resultados em um arquivo e depois fazer minha própria comparação no arquivo. No entanto, isto será muito tedioso e manual!

É possível anexar minha EA a apenas 1 gráfico, e fazer com que a EA obtenha os dados de todos os pares e prazos usando as funções Time Series, tais como iClose, iOpen etc, e depois alimentar os meus indicadores com o preço?

Alguém prevê algum problema com o segundo método? O processamento da CPU envolve muito? O tempo necessário para executar a verificação será muito longo, etc.? Eu não preciso de um período de tempo mais fino do que 5 minutos.

Sou novo na EA e, portanto, não conheço o desempenho da EA. Qualquer ajuda será muito apreciada. Saúde!!

Você pode usar a função de símbolo para isso. Por exemplo, se você deseja verificar o valor da média móvel e fechar o preço em 10 gráficos, por exemplo, 10 cruzes de diferentes intervalos de tempo, mas na barra atual, então será parecido com isto:

eurudMa duplo = iMa("EURUSD", blablabla,PERÍODO_X,0);

double eurusdClose = iClose("EURUSD",PERÍODO_X);

e compare esses valores, se desejar.

O mesmo com outros indicadores. Se você desejar obter o preço de compra e venda da cruz especificada, use a função MarketInfo da mesma forma.

Atenciosamente

Kale

 

OsMA com linha de sinal

Codificadores, eu preciso de sua ajuda. Alguém pode acrescentar uma linha de sinal ao indicador OsMA anexado? Muito obrigado!

Arquivos anexados:
osma.mq4  3 kb
 

Como criar uma versão digital disto?

Oi, pessoal,

Sou um principiante aqui.

Wolfe teve a gentileza de criar um modelo para um código abaixo, que eu modifiquei. Ele funciona perfeitamente bem e faz o que eu quero que ele faça.

Mas agora,

Estou pensando em criar a versão digital disto, semelhante ao indicador DIGISTOCH.

O que eu quero saber é:

- Como "limpar" ou "nivelar" os amortecedores? Parece que não consigo "apagar" o link de buffers e criar novos.

- Como modificar isto para NÃO incluir buffers? Acho que isso vai salvar alguma memória, certo? Eu tentei apagar o SetIndexBuffer, mas depois, quando carregado no MT4, ele dá erro de"divisão zero" na janela do terminal especializado.

- Ambas as etiquetas abaixo exibem apenas 1 valor, o valor H1. Supõe-se que para exibir o número do número H1 e H4. Portanto, não está funcionando aqui.

- Basicamente, quero que isto exiba o número da relação de diferentes períodos (de M1 a MN1) em uma tela, assim como o indicador DIGIStoch.

Qualquer ajuda seria bem-vinda.

Cumprimentos,

//+------------------------------------------------------------------+

//| 2MA_RSI.mq4 |

//+------------------------------------------------------------------+

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

for(i=limit; i>=0; i--){

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

//+------------------------------------------------------------------+

//| Trying to set new buffers |

//+------------------------------------------------------------------+

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

for(i=limit; i>=0; i--){

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
Oi, pessoal,

Sou um principiante aqui.

Wolfe teve a gentileza de criar um modelo para um código abaixo, que eu modifiquei. Ele funciona perfeitamente bem e faz o que eu quero que ele faça.

Mas agora,

Estou pensando em criar a versão digital disto, semelhante ao indicador DIGISTOCH.

O que eu quero saber é:

- Como "limpar" ou "nivelar" os amortecedores? Parece que não consigo "apagar" o link de buffers e criar novos.

- Como modificar isto para NÃO incluir buffers? Acho que isso vai salvar alguma memória, certo? Eu tentei apagar o SetIndexBuffer, mas depois, quando carregado no MT4, ele dá erro de "divisão zero" na janela do terminal especializado.

- Ambas as etiquetas abaixo exibem apenas 1 valor, o valor H1. Supõe-se que para exibir o número do número H1 e H4. Portanto, não está funcionando aqui.

- Basicamente, quero que isto exiba o número da relação de diferentes períodos (de M1 a MN1) em uma tela, assim como o indicador DIGIStoch.

Qualquer ajuda seria bem-vinda.

Cumprimentos,

Basta definir um valor vazio para os amortecedores após o init para cada loop.

Sobre a divisão zero, basta criar alguma condição de "se" antes do cálculo.

 

Código de sinal horário múltiplo

Olá Programadores

Sou um novato aprendendo a programar e criei uma EA básica e aprecio se alguém tem a gentileza de me ajudar no acompanhamento:

A idéia é basicamente procurar por um sinal TF mais alto e esperar pelo retrocesso no TF mais baixo e depois executar ordens como :

se 4 HR gera um sinal no seguimento:

if(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

como segurar o sinal acima e esperar por 1 HR (ou qualquer outro período de tempo) de retrocesso, tais como

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

OU

Qualquer outra estratégia...

Já tenho todos os indicadores definidos em variáveis para diferentes períodos de tempo...

Posso enviar EA se alguém estiver disposto a dar a mão ... também se algum programador experiente estiver disposto a trabalhar comigo minha estratégia, estou disposto a compensar (infelizmente não posso pagar muito)...

Agradeço qualquer ajuda

Mo Syed

e-mail: moi.syed@gmail.com

Razão: