Como codificar? - página 280

 

Certamente podem ocorrer problemas em contas reais que não aparecem na demonstração ou no testador de estratégia, mas geralmente não são recorrentes e são pouco freqüentes. Eu nunca vi ou ouvi falar deste.

De sua explicação, não consigo determinar quantas negociações estão abertas quando o problema ocorre. Se o erro está acontecendo sem nenhuma negociação aberta, isso é um mistério. Se ocorrer com, digamos, 5 negociações abertas, isso provavelmente tem algo a ver com o problema.

ERR_TRADE_DISABLED133Trade está desativado. Todas as tentativas de negociação devem ser interrompidas.

A documentação para este erro parece indicar que algo está errado com a forma como a EA está colocando a negociação. Mas como ambos os EA estão usando a mesma lógica OrderSend(), eu me pergunto se isso tem algo a ver com o fato de que você tem 2 EA em execução. Normalmente, qualquer questão de contenção causa um "Contexto Comercial Ocupado" (146) e qualquer problema de conta causaria um erro de "Fundos Insuficientes" (134). Valeria a pena tentar executar apenas um EA de cada vez e ver se isso faz alguma diferença.

 

Avasys

Isso pode parecer bobagem, mas você compilou a EA, certo?

Após a compilação, deve haver um arquivo ex4 na pasta Especialistas.

 
michaelB:
Isso pode parecer bobagem, mas você compilou a EA, certo? Após a compilação, deve haver um arquivo ex4 na pasta Especialistas.

Isto é o que eu preciso saber também

Colei o arquivo mq4 na pasta experts, mas quando reiniciei o MT4 ele não criou o arquivo ex4 na pasta experts,

então preciso verificar o código se ele tem erro

 

Como mudar a cor do IndicatorShortName

Caros senhores,

Como posso acrescentar no código minha própria cor para esta linha

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")");

a fim de mudar a cor de pequenas informações que tenho em janela separada de indicador no canto superior esquerdo?

Pucio

 

ALGUÉM PODE ME DIZER O QUE HÁ DE ERRADO COM ESTE CÓDIGO?

EXISTE ALGUM ERRO, PORQUE ELE NÃO CRIA UM ARQUIVO EX4 QUANDO EU COLO UM ARQUIVO MQ4 NA PASTA EXPERTS

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

//| simples EA.mq4 |

//| Copyright © 2011, luktom.biz |

//| www.luktom.biz/en |

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

#direitos autorais "Copyright © 2011, luktom.biz".

#link do proprietário "http://www.luktom.biz"

Parada dupla externaLoss = 300,0;

takeProfit duplo externo = 500,0;

fio externo Início = "2: 00";

cordão externo Fim = "10: 00";

distância dupla externa = 60;

bool isECN = verdadeiro;

bool cond = falso;

bool cond2 = falso;

duplo baixo;

duplo alto;

lotes duplos externos = 0,1;

int magic = 1232344524285020;

int slippage = 1;

comentário de cordel = "";

int ticket;

int short = 0;

int longo = 0;

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

//| função de iniciação de especialista |

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

int init()

{

//----

//----

(0) retorno;

}

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

//| função de desinicialização especializada |

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

int deinit ()

{

//----

Imprimir (contagemOrdens (magia, OP_BUY));

//----

(0) retorno;

}

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

//| função de início especializado |

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

int start()

{

Imprimir (AccountCurrency ()));

//----

se (isGoodTime (Início, Fim))

{

curto = 0;

longo = 0;

se (! cond)

{

baixo = Licitação;

alto = Pedir;

}

cond = verdadeiro;

se (Licitação < baixa) baixa = Licitação;

se (Perguntar > alto) alto = Perguntar;

}

se ((alto-baixo) * 1000 > distância)

{

cond2 = verdadeiro;

}

se (! isGoodTime (Início, Fim))

{

cond = falso;

}

se (! isGoodTime (Begin, End) & cond2)

{

if (countOrders (magia, OP_SELL) == 0)

{

if (Bid " = (CRL-0.0005) & short === 0)

{

curto + +;

se (isECN == falso)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

se (isECN)

{

bilhete = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (bilhete, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders (magia, OP_BUY) == 0)

{

se ((Ask-high) > = = 0,005 & & long = = = 0)

{

longo + +;

se (isECN == falso)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic);

}

se (isECN)

{

bilhete = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (bilhete, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) retorno;

}

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

bool isGoodTime (string, string, Begin, End) {

if (TimeCurrent () > Localtime (Início) & TimeCurrent < Localtime () (Fim)) {

retorno (verdadeiro);

}

retornar (falso);

}

int countOrders (int, int oMagic oType) {

int count = 0;

para (int i = 0; i < OrderTotal (); i ++) {

se (OrderSelect (i, SELECT_BY_POS)) {

se (OrderMagicNumber () == oMagic) {

se (OrderSymbol () = o = Símbolo ()) {

se (OrderType () == oType || oType < 0) {

contar ++;

}

}

}

}

}

retornar (contar);

}

valor duplo sltpValue (duplo, int w1 w2)

{

se (w2 = = 0)

retorno (0);

retorno (NormalizeDuplo (w1, Dígitos));

}

 
Avasys:
ALGUÉM PODE ME DIZER O QUE HÁ DE ERRADO COM ESTE CÓDIGO?

EXISTE ALGUM ERRO, POIS NÃO CRIA UM ARQUIVO EX4 QUANDO COLO UM ARQUIVO MQ4 NA PASTA EXPERTS

Você pode nos dizer onde você conseguiu esta ea?

Parece que a ea está emaranhado. Por exemplo, na linha 129 onde você tem a definição de função éGoodTime que vemos:

bool isGoodTime (string, string, Begin, End)

deveria ser:

bool isGoodTime (corda Início, corda Fim)

Há muitos erros como esse em ea. Parece que o código está incompleto, ou protegido por uma mudança de código como esta, o que torna esta fonte inútil.

 
Kalenzo:
Você pode nos dizer onde você conseguiu esta ea?

Parece que a ea está emaranhado. Por exemplo, na linha 129 onde você tem a definição de função éGoodTime que vemos:

bool isGoodTime (string, string, Begin, End)

deveria ser:

bool isGoodTime (corda Início, corda Fim)

Há muitos erros como esse em ea. Parece que o código está incompleto, ou protegido por uma mudança de código como esta, o que torna esta fonte inútil.

[lang=pl]Sou um autor. Anexei o arquivo mq4 para a Avasys. Eu não sou quem muda na função do código éGoodTime. Em meu terminal, seu funcionamento. Avasys, por que você está tão nervoso ??

Se você tiver algum problema, entre em contato comigo ao invés de falar sobre isso no fórum [/lang].

Arquivos anexados:
 
g.pociejewski:
[lang=pl]Sou um autor. Anexei o arquivo mq4 para a Avasys. Eu não sou quem muda na função do código éGoodTime. Em meu terminal, seu funcionamento. Avasys, por que você está tão nervoso ?? Se você tiver algum problema, entre em contato comigo ao invés de falar sobre isso no fórum [/lang].

Eu não estou nervoso, não consegui encontrá-lo no fórum

este EA funciona bem, mas faz múltiplas operações por dia novamente. Portanto, minhas preocupações eram pedir à EA que fizesse apenas uma negociação por dia.

 
CodeMeister:
Certamente podem ocorrer problemas em contas reais que não aparecem na demonstração ou no teste de estratégia, mas geralmente não são recorrentes e são infrequentes. Eu nunca vi ou ouvi falar desta.

De sua explicação, não consigo determinar quantos negócios estão abertos quando o problema ocorre. Se o erro está acontecendo sem nenhuma negociação aberta, isso é um mistério. Se ocorrer com, digamos, 5 negociações abertas, isso provavelmente tem algo a ver com o problema.

ERR_TRADE_DISABLED133Trade está desativado. Todas as tentativas de negociação devem ser interrompidas.

A documentação para este erro parece indicar que algo está errado com a forma como a EA está colocando o comércio. Mas como ambos os EA estão usando a mesma lógica OrderSend(), eu me pergunto se ela tem algo a ver com o fato de que você tem 2 EA em funcionamento. Normalmente, qualquer questão de contenção causa um "Contexto Comercial Ocupado" (146) e qualquer problema de conta causaria um erro de "Fundos Insuficientes" (134). Valeria a pena tentar executar apenas um EA de cada vez e ver se isso faz alguma diferença.

A EA que está tendo os problemas só abre uma negociação de cada vez. Nenhuma outra negociação foi aberta quando os erros ocorreram. Vou tentar executar apenas uma EA e ver se isso ajuda. Obrigado pelo conselho.

 

Como ler um rótulo MT4

Olá,

Modifiquei um indicador e criei um objeto OBJ_LABEL com valores para que minha EA possa captar os valores no OBJ_LABEL. Estes valores são pontos de preço e eu não posso criar outro buffer no indicador para mantê-los, então eu acabei de colocá-los nestas etiquetas. Parece uma boa solução, MAS, eu não consigo descobrir como LER uma etiqueta em MT4 em meu EA!! Eu uso a função GETOBJECT, mas ela só retornará certas propriedades e valor de texto de uma etiqueta ou objeto de texto não é uma delas!!

Alguém pode me ajudar aqui?

Obrigado!

Razão: