Ajuda na codificação - página 36

 

Precisa de uma revisão manual STOPLOSS

mladen:
kemal44

Aqui está um link para um tópico onde é explicado como usar funções em código: https: //www.mql5.com/en/forum/173005

É explicado muito bem lá (e mais do que eu posso explicar em um posto) como usá-los

Caro Mladen ,

quando o teste de retrocesso, BreakEven-Stoplos parece funcionar, mas quando a conta real , tanto quanto eu vejo, não funciona corretamente ,

você se importaria de dar uma olhada num arquivo de especialista, e depois me dizer o que há de errado com ele?

obrigado de antemão

Arquivos anexados:
xpexpert.txt  24 kb
 

...

... kemal

Verifique na guia de especialistas do terminal que erro está escrito.

Não posso verificá-lo, pois falta a lógica de entrada (nunca define BuyCondition ou SellCondition como verdadeiro da forma como é escrito)

kemal44:
Prezado Mladen ,

quando o teste de retrocesso, BreakEven-Stoplos parece funcionar, mas quando a conta real , tanto quanto eu vejo, não funciona corretamente ,

você se importaria de dar uma olhada num arquivo de especialista, e depois me dizer o que há de errado com ele?

obrigado de antemão
 
mladen:
kemal

Verifique na guia de especialistas do terminal que erro está escrito.

Não posso verificá-lo, pois falta a lógica de entrada (nunca define BuyCondition ou SellCondition como verdadeiro da forma como está escrito)

Aqui está o especialista com lógica de compra e venda,

o problema é o ponto de equilíbrio.

O que eu quero fazer com o breakeven é que se o lucro saltar 5 pip do ponto de entrada, o stop-loss deve ser definido para o ponto de entrada, a fim de proteger a carteira ,

obrigado de antemão

Arquivos anexados:
xpexpert_1.txt  24 kb
 

...

Como a distância mínima do stop loss depende de símbolo para símbolo, de corretor para corretor e pode variar de um momento para outro, antes de definir o break even, acrescente um cheque que daria algo assim (este é um exemplo genérico quando uma ordem é uma ordem de compra, você pode escrevê-la muito semelhante a uma ordem de venda) :

double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS: tudo isso é válido (de acordo com as últimas mudanças - de construção 419 para cima) nos casos em que o corretor não é um corretor ECN. Se seu corretor for um corretor ECN nesse caso MarketInfo(Symbol(),MODE_STOPLEVEL) retornará 0 nas últimas construções e você terá que fazer algumas experiências para ajustar a distância mínima (se houver uma) do stop loss

kemal44:
aqui está o especialista com lógica de compra e venda,

o problema é o ponto de equilíbrio.

O que eu quero fazer com o breakeven é que se o lucro saltar 5 pip do ponto de entrada, o stop-loss deve ser definido para o ponto de entrada, a fim de proteger a carteira ,

obrigado de antemão
 
mladen:
Como a distância mínima do stop loss depende de símbolo para símbolo, de corretor para corretor e pode variar de um momento para outro, antes de definir o break even, acrescente um cheque que daria algo assim (este é um exemplo genérico quando uma ordem é uma ordem de compra, você pode escrevê-la muito semelhante a uma ordem de venda) :
double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS: tudo isso é válido (de acordo com as últimas mudanças - de construção 419 para cima) nos casos em que o corretor não é um corretor ECN. Se seu corretor for um corretor ECN nesse caso MarketInfo(Symbol(),MODE_STOPLEVEL) retornará 0 nas últimas construções e você terá que fazer algumas experiências para ajustar a distância mínima (se houver uma) do stop loss

obrigado ;

A distância é uma boa idéia ,

Não tenho idéia das regras da ECN Broker, meu corretor é uma empresa local

 

...

kemal44

De seu corretor - tente o seguinte: uma maneira simples de verificar é tentar abrir um pedido manualmente, mas quando você faz isso, tente definir parar o prejuízo e/ou ter lucro. Se esses campos estiverem desativados (como na figura abaixo) no diálogo de ordem aberta ou qualquer outro valor, exceto 0 que você definir naqueles que você receber um erro, então seu corretor é um tipo de corretor "ECN / STP

kemal44:
obrigado ;

A distância é uma boa idéia ,

Não tenho idéia das regras da ECN Broker, meu corretor é uma empresa local.
Arquivos anexados:
order_open.gif  22 kb
 
mladen:
kemal44

De seu corretor - tente o seguinte: uma maneira simples de verificar é tentar abrir um pedido manualmente, mas quando você faz isso, tente definir parar o prejuízo e/ou ter lucro. Se esses campos estiverem desativados (como na figura abaixo) no diálogo de ordem aberta ou qualquer outro valor, exceto 0 que você definir naqueles que você receber um erro, então seu corretor é um tipo de corretor "ECN / STP

Minha janela de negociação é exatamente a mesma da foto acima. Não entendi que meu borker é do tipo "ECN / STP" .

Obrigado.

Enquanto isso , podemos obter canais (StdDev etc.) fornecidos automaticamente pelo MT4 em nosso gráfico pelo indicador ou código baseado em ea , não tenho idéia de como codificá-lo , você se importaria de me ajudar a obter um código de amostra para isso?

obrigado de antemão

 

...

kemal44

Não tenho certeza se entendi a pergunta sobre os "canais", mas deixe-me tentar :

Você pode usar qualquer indicador de metatrader embutido usando as funções que eles fornecem. Para o desvio padrão, por exemplo, a sintaxe é a seguinte:

.][.][.][

[/TR]

[TR]

["width: 100%"]MA shift.

[TR]

[TD]ma_method

[TD] - ["width: 100%"]MA method. Pode ser qualquer um dos valores de.

[TR]

[TD]applied_price[TD] - ["width: 100%"]Preço aplicado. Pode ser da.

[TR]

[TD]shift[TD] - [TD="largura: 100%"]Índice do valor retirado do buffer de indicadores (shift em relação à barra atual a quantidade de períodos atrás).
double iStdDev(

[/TD]

string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift)[/TD]

[/TR][

/TABLE]

Calcula o indicador de desvio padrão e retorna seu valor

Parâmetros:

[TABELA="classe: docparams"

símbolo[/TD] -
/TD]Símbolo cujos dados devem ser usados para calcular o indicador
NULL significa o símbolo atual.[/TD]

[/TR

Timeframe[/TD] -
/TD]Timeframe. Pode ser qualquer um dos valores de enumeração de Prazo 0 significa o tempo atual do gráfico.[/TD]

[/TR

ma_period[/TD] -
/TD]MA period.ma_shift -
TD=
TD=
enumeração do método Moving Average
TD=
qualquer um dos valores
enumeração de preços aplicados

Amostra:

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);

_________________________________________

Similar é para outros indicadores incorporados (estes :

Assim, você pode usar qualquer um deles como uma chamada de função de outro indicador, roteiro ou EA

Se você pretendia exibir alguns dos valores dos indicadores embutidos no gráfico, então você tem que usar um buffer de desenho (como nos indicadores regulares) atribuir valores de algumas das funções acima ao buffer de desenho e este será exibido no gráfico. EAs não têm buffers de desenho, então você não pode fazer isso usando buffers de desenho de um EA (você precisaria usar objetos, mas isso é uma história completamente diferente).

kemal44:
Minha janela de negociação é exatamente a mesma da figura acima. Não entendi que meu borker é do tipo "ECN / STP" .

obrigado

Enquanto isso , podemos obter canais (StdDev etc.) fornecidos automaticamente pelo MT4 em nosso gráfico pelo indicador ou código baseado em ea , não tenho idéia de como codificá-lo , você se importaria de me ajudar a obter um código de amostra para isso?

obrigado de antemão
 
mladen:
kemal44

Não tenho certeza se entendi a pergunta sobre os "canais", mas deixe-me tentar :

Você pode usar qualquer indicador de metatrader embutido usando as funções que eles fornecem. Para o desvio padrão, por exemplo, a sintaxe é a seguinte:

.].].]

[/TR]

[TR]

TD="width: 100%"]MA shift.

[TR]

[TD]ma_method[TD] -[TD="width: 100%"]MA method. Pode ser qualquer um dos valores de enumeração do método Moving Average.

[TR]

[TD]applied_price[TD] -[TD="width: 100%"]Preço aplicado. Pode ser.[

TR]

[TD]shift[TD] -[TD="largura: 100%"]Índice do valor retirado do buffer de indicadores (shift em relação à barra atual a quantidade indicada de períodos atrás).
double iStdDev([/TD]string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift)[/TD]

[/TR][

/TABLE]

Calcula o indicador de desvio padrão e retorna seu valor

Parâmetros:

[TABELA="classe: docparams"

símbolo[/TD] -[/TD]Símbolo cujos dados devem ser usados para calcular o indicador
NULL significa o símbolo atual.[/TD]

[/TR

Timeframe[/TD] -[/TD]Timeframe. Pode ser qualquer um dos valores de enumeração de Prazo0 significa o tempo atual do gráfico.[/TD]

[/TR

ma_period[/TD] -[/TD]MA period.ma_shift -[
qualquer um dos valores de enumeração de preços aplicados

Amostra:

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);

_________________________________________

Similar é para outros indicadores incorporados (estes :

Assim, você pode usar qualquer um deles como uma chamada de função de outro indicador, roteiro ou EA

Se você pretendia exibir alguns dos valores dos indicadores embutidos no gráfico, então você tem que usar um buffer de desenho (como nos indicadores regulares) atribuir valores de algumas das funções acima ao buffer de desenho e este será exibido no gráfico. EAs não têm buffers de desenho, então você não pode fazer isso usando buffers de desenho de um EA (você precisaria usar objetos, mas isso é uma história completamente diferente).

O que eu quero dizer com Canal Sdv é o canal como o abaixo ,

a propósito, obrigado pela pronta resposta.

Arquivos anexados:
xxx.gif  13 kb
 

EA com SAR parabólico

Tenha uma idéia de comércio com SAR parabólico. Quero fazer EA com SAR parabólico, mas até agora não obtive um bom resultado. Portanto, se você tiver uma idéia com SAR parabólico, eu a farei melhor. O último que eu faço pode ter esse lucro, mas a equidade nunca é a mesma com o equilíbrio.

Arquivos anexados: