Ajuda na codificação - página 281

 
mladen:
stevenpun Você diz que comprar tem 0,1 lote + 0,2 lote e a venda deve ser de 0,4 lote. Você se importaria de esclarecê-lo?

Hello mladen , desculpe pelo atraso na resposta.

Porque adoeceram por alguns dias .

Eu fiz uma foto

Por exemplo, quando a compra tem 2 pedidos em aberto (0,1 Lote + 0,2 Lote ) , mas de repente o trem muda para vender .

A ea vai abrir uma venda por 0,1 Lote , mas eu quero que ela seja aberta por 0,4 Lote .

Isso é possível para modificá-lo?

Arquivos anexados:
lot_explain.jpg  121 kb
 
hermes:
Olá, mais uma vez,

Eu tentei usar o acima com um comentário, mas ele estava exibindo apenas o Max. Você pode ajudar com talvez duas funções . Uma exibindo o preço imediato da linha acima de Bid e a segunda, a linha abaixo de Bid . Obrigado.

Aqui está o código.

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

//| SimpleGrid.mq4+

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

#incluir

#incluir

#propriedade rigorosa

// variáveis exportadas

preço de início de rede externo = " Preço inicial para colocar as linhas ";

GSP duplo externo = 0,0;

GR int externo = 5;

duplo GSP externo = 5;

CGL de cor externa = Ouro;

cor externa BGL = Verde;

cor externa SGL = Vermelho;

bool externo ClearAllObjects = Falso;

// variáveis locais

valor duplo PipValue=1; // esta variável está aqui para suportar corretores de 5 dígitos

bool Terminado = falso;

string LF = "\n"; // use isto em blocos personalizados ou utilitários onde você precisa de linhas de alimentação

int NDigits = 4; // usado principalmente para NormalizeDouble em blocos tipo Flex

int ObjCount = 0; // contagem de todos os objetos criados no gráfico, permite a criação de objetos com nomes únicos

corrente int = 0;

int init()

{

NDígitos = Dígitos;

se (falso) ObjetosDeleteAll(); // limpar o gráfico

Comentário(""); // limpar o gráfico

retorno(0);

}

// Início especializado

int start()

{

se (Barras < 10)

{

Comentário ("Não há barras suficientes");

retornar (0);

}

se (Encerrado == verdadeiro)

{

Comentário ("EA Terminado");

retorno (0);

}

OnEveryTick7();

retornar (0);

}

nulo emEveryTick7()

{

PipValue = 1;

se (NDigits == 3 || NDigits == 5) PipValue = 10;

CentreGridLine();

}

CentroVálidoGridLine()

{ if (ObjectFind("CGL") == (-1) )

{

{

objName da cadeia = "CGL" ;

ObjectCreate(objName, OBJ_HLINE, 0, Time[0],GSP);

ObjectSet(objName, OBJPROP_PRICE1, GSP);

ObjectSet(objName, OBJPROP_COLOR,CGL);

}

TradeLine();

UprBnd();

LwrBnd();

}

}

TradeLine() nulo

{

int i;

double GridStep1= (GridStep*2);

double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;

duplo SGSP= (GSP-((GridStep/2)*PipValue*Ponto));

duplo BBGSP= (BGSP-((GridStep*(GR))*PipValue*Ponto)) ;

duplo SSGSP= (SGSP+((GridStep*(GR))*PipValue*Ponto));

{

for(i=0; i<GR;i++)

{

SGL("Sell "+i,BBGSP+GridStep1*i*PipValue*Point);

}

}

{

for(i=0; i<GR;i++)

{

BGL("Buy "+i,SSGSP-GridStep1*i*PipValue*Point);

}

}

}

BGL(string objName, preço duplo)

{

ObjectCreate(objName, OBJ_HLINE, 0, 0, preço);

ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(objName, OBJPROP_WIDTH, 1);

ObjectSet(objName, OBJPROP_COLOR, BGL);

}

nulo SGL(string objName, preço duplo)

{

ObjectCreate(objName, OBJ_HLINE, 0, 0, preço);

ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(objName, OBJPROP_WIDTH, 1);

ObjectSet(objName, OBJPROP_COLOR, SGL);

}

UprBnd() vazio

{ if (ObjectFind("UPRBND") == (-1) )

{

duplo BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;

duplo preço= (BGSP+((GridStep*(GR))*PipValue*Ponto)) ;

string objName = "UPRBND" ;

ObjectCreate(objName, OBJ_HLINE, 0, Tempo[0], preço );

ObjectSet(objName, OBJPROP_PRICE1,price);

ObjectSet(objName, OBJPROP_COLOR, DodgerBlue);

ObjectSet(objName, OBJPROP_WIDTH,3);

}

}

LwrBnd() vazio

{ if (ObjectFind("LWRBND") == (-1) )

{

duplo SGSP= (GSP-((GridStep/2)*PipValue*Point));

duplo preço= (SGSP-((GridStep*(GR))*PipValue*Ponto));

string objName = "LWRBND" ;

ObjectCreate(objName, OBJ_HLINE, 0, Tempo[0], preço );

ObjectSet(objName, OBJPROP_PRICE1,price);

ObjectSet(objName, OBJPROP_COLOR, Tomate);

ObjectSet(objName, OBJPROP_WIDTH, 3);

}

}

int deinit()

{

se (ClearAllObjects) ObjectsDeleteAll();

retornar (0);

}

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

Hermes

Você pode anexar o arquivo mq4?

 
mladen:
HermesCpode anexar o arquivo mq4?

Aqui está. Obrigado

Arquivos anexados:
simpleg.mq4  4 kb
 

Hi,

Eu preciso de ajuda com um Ea que eu fiz, está relacionado em 2 Média móvel e 2 prazos diferentes para filtrar a tendência, eu gostaria de adicionar um indicador RSI a fim de filtrar os negócios, configurar por exemplo o período RSI 8 nível 50, se maior que RSI nível 50 na travessia abrimos apenas ordens de mercado de venda, se menor que RSI nível 50 na travessia abrimos apenas ordens de mercado de compra. Eu anexei o Ea, no início foi realçado aos keltnerchannels, mas agora eu quero ser usado apenas como Ma1 e Ma2.

Algum órgão pode me ajudar com estas mudanças?

Obrigado.

Arquivos anexados:
 
hermes:
Aqui está. Obrigado

Hermes

Experimente isto : simpleg_1.mq4

Arquivos anexados:
simpleg_1.mq4  6 kb
 
daniel1983:
Hi,

Eu preciso de ajuda com um Ea que eu fiz, está relacionado em 2 Média móvel e 2 prazos diferentes para filtrar a tendência, eu gostaria de adicionar um indicador RSI a fim de filtrar os negócios, configurar por exemplo o período RSI 8 nível 50, se maior que RSI nível 50 na travessia abrimos apenas ordens de mercado de venda, se menor que RSI nível 50 na travessia abrimos apenas ordens de mercado de compra. Eu anexei o Ea, no início foi realçado aos keltnerchannels, mas agora eu quero ser usado apenas como Ma1 e Ma2.

Algum órgão pode me ajudar com estas mudanças?

Obrigado

daniel1983

É quase certo que você nunca receberá cruzes de mas e rsis ao mesmo tempo (ou seja - você quase nunca receberá sinais). Experimente : faça um indicador simples que faça o que você descreve e você verá como essas condições acontecem raras ao mesmo tempo.

 
mladen:
daniel1983É quase certo que você nunca receberá cruzes de mas e rsis ao mesmo tempo (ou seja - você quase nunca receberá sinais). Experimente : faça um indicador simples que faça o que você descreve e você verá como essas condições acontecem raramente ao mesmo tempo.

Olá, Mladen,

Eu quero dizer

- em qualquer nível entre 0 e 50 vender apenas

- em qualquer nível, entre 50 e 100 apenas compre,

não neste mesmo ponto de cruzamento, o cruzamento pode ser em qualquer nível (43, 41, 18, 25) para ordens de compra no mercado, confirmando com maior tendência de prazo. Eu testei isto e cerca de 80% das ordens abertas parece que com este filtro não se abrirá na direção oposta.

Neste momento o Ea abre ordem de compra quando a travessia está iniciando uma tendência de queda, com este filtro em 80% dos casos ele irá filtrar esta travessia sem entrar na ordem neste ponto. onde aqueles Ma cruzam.

Neste Ea i tenho inserido um período de tempo maior, mas fiz testes com melhores resultados utilizando um período de tempo menor para filtrar a tendência.

Anexo uma foto de um exemplo de teste configurado:

Para EURUSD

Neste caso estou usando EMA 2 e EMA 67, e RSI (8) tempo 1min e Hitimeframe 5min, neste caso você tem uma ordem de compra de mercado que não é lucrativa, esta ordem de compra de mercado acontece no cruzamento dos EMa's, mas com RSI em um nível abaixo de 50.

Quando você tem uma ordem de mercado de venda que abre no cruzamento, mas com RSI abaixo de 50, e esta ordem é a ordem de mercado correta que eu quero filtrar de todos os sinais.

É possível fazer isto?

Obrigado.

Daniel

Arquivos anexados:
rsi_filter.png  32 kb
 
mladen:
HermesTry this out : simpleg_1.mq4

Olá Mladen,

Por fim, funciona com este . Obrigada.

LoopBS() vazio

{

double max =(ObjectGet("UPRBND",OBJPROP_PRICE1)));

duplo min =(ObjectGet("LWRBND",OBJPROP_PRICE1)));

para (int i =ObjectsTotal()-1; i>=0; i--)

{

nome da cadeia = ObjectName(i);

if (StringSubstr(nome,0,3)=="Comprar")

{

duplo BS=ObjectGet(nome,OBJPROP_PRICE1);

if ((Ask<BS) && (BSmin))

{

max = ObjectGet(nome,OBJPROP_PRICE1);

{

Comentário(DoubleToStr(BS,Digits)," ");

}

}

}

}

}

 

Sinais imprecisos

Sinais imprecisos

Caros, artesãos! Poderiam dar um sinal melhor para fazer. M1, M5, M15

Arquivos anexados:
.......png  31 kb
 
DMNIK:
Sinais imprecisosDear,artesãos! Poderia fazer melhor sinal? M1, M5, M15

É simplesmente mostrando que os últimos 3 fechamentos são maiores ou menores do que os últimos 3 abertos. Nada para melhorar nisso