Ajuda com os botões da EA, por favor
Results 1 to 8 of 8

Thread: Ajuda com os botões da EA, por favor

  1. #1
    Olá a todos,

    Eu tenho um problema que eu não sei como lidar ou explicar bem, desculpe, mas vou tentar.

    Eu escrevi um EA usando nos botões do gráfico para me ajudar no meu comércio manual, uma vez que o EA carrega pela primeira vez no gráfico, o que é bom, eu posso clicar nos botões e esperar obter os resultados que eu quero, no entanto, depois de um tempo (aleatório), os botões que usam o OBJPROP_STATE falsoverdadeiro retornam à opção padrão, o que não é verdade, mesmo se parecerem verdadeiros (clicados) no gráfico.

    Eu peguei o código dos switches de um EA alguém foi pago para codificar para mim, talvez não tenha sido escrito bem, talvez eu realmente não entenda como usá-lo bem, eu não entendo, mas isso está me enlouquecendo ao depurá-lo , tudo funciona contanto que eu olhe para ele Eu vou embora por uma hora (algumas vezes mais curto ou mais longo que isso) Eu olho para o gráfico e enquanto tudo parece bem, nada funciona antes de clicar novamente em todo o clicável afundadodesfeito , não sei como é chamado) botões.

    Aqui está o código para os botões



    Obrigado.


    Código inserido/p --------------------------------------------- --------------------- /| Função de inicialização de especialistas |/p ----------------------------------------------- ------------------- int OnInit () ObjectCreate (ChartID (), Longs Desativado, OBJ_BUTTON, 0,0,0); ObjectSet (Longs desativado, OBJPROP_BGCOLOR, clrRed); ObjectSet (Longs desativado, OBJPROP_CORNER, 1); ObjectSet (Longs desativado, OBJPROP_YDISTANCE, 60); ObjectSet (Longs Disabled, OBJPROP_XDISTANCE, 120); ObjectSet (Longs desativado, OBJPROP_XSIZE, 120); ObjectSet (Longs desativado, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Longs desativado, OBJPROP_TEXT, Longs desativado); ObjectSet (Longs desativado, OBJPROP_COLOR, branco); ObjectCreate (ChartID (), Shorts desativados, OBJ_BUTTON, 0,0,0); ObjectSet (Shorts desativados, OBJPROP_BGCOLOR, clrRed); ObjectSet (Shorts desativados, OBJPROP_CORNER, 1); ObjectSet (Shorts desativados, OBJPROP_YDISTANCE, 90); ObjectSet (Shorts desativados, OBJPROP_XDISTANCE, 120); ObjectSet (Shorts desativados, OBJPROP_XSIZE, 120); ObjectSet (Shorts desativados, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Shorts desativados, OBJPROP_TEXT, Shorts desativados); ObjectSet (Short desativado, OBJPROP_COLOR, branco); ObjectCreate (ChartID (), Fechar tudo, OBJ_BUTTON, 0,0,0); ObjectSet (Close All, OBJPROP_BGCOLOR, clrRed); ObjectSet (Close All, OBJPROP_CORNER, 1); ObjectSet (Close All, OBJPROP_YDISTANCE, 120); ObjectSet (Close All, OBJPROP_XDISTANCE, 120); ObjectSet (Close All, OBJPROP_XSIZE, 120); ObjectSet (Fechar tudo, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Fechar tudo, OBJPROP_TEXT, Fechar tudo); ObjectSet (Fechar tudo, OBJPROP_COLOR, branco); ObjectCreate (ChartID (), desativado, OBJ_BUTTON, 0,0,0); ObjectSet (desativado, OBJPROP_BGCOLOR, clrRed); ObjectSet (desativado, OBJPROP_CORNER, 1); ObjectSet (desativado, OBJPROP_YDISTANCE, 150); ObjectSet (desativado, OBJPROP_XDISTANCE, 120); ObjectSet (desativado, OBJPROP_XSIZE, 120); ObjectSet (desativado, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Desativado, OBJPROP_TEXT, Desativado); ObjectSet (desativado, OBJPROP_COLOR, branco); ObjectCreate (ChartID (), Compra, OBJ_BUTTON, 0,0,0); ObjectSet (Compre, OBJPROP_BGCOLOR, clrGreen); ObjectSet (Compre, OBJPROP_CORNER, 1); ObjectSet (Compre, OBJPROP_YDISTANCE, 180); ObjectSet (Comprar, OBJPROP_XDISTANCE, 120); ObjectSet (Compre, OBJPROP_XSIZE, 120); ObjectSet (Compre, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Comprar, OBJPROP_TEXT, Comprar); ObjectSet (Compra, OBJPROP_COLOR, Branco); ObjectCreate (ChartID (), vender, OBJ_BUTTON, 0,0,0); ObjectSet (venda, OBJPROP_BGCOLOR, clrGreen); ObjectSet (venda, OBJPROP_CORNER, 1); ObjectSet (Sell, OBJPROP_YDISTANCE, 210); ObjectSet (Sell, OBJPROP_XDISTANCE, 120); ObjectSet (venda, OBJPROP_XSIZE, 120); ObjectSet (venda, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), vender, OBJPROP_TEXT, vender); ObjectSet (venda, OBJPROP_COLOR, branco); return (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- / --------------------------- --------------------------------------- /| Função ChartEvent|/ ----------------------------------------------- ------------------- void OnChartEvent (const int id, const longo lparam, const duplo dparam, const string sparam) if (id == CHARTEVENT_OBJECT_CLICK) if (sparam = = Longs desativado) if (AllowLongs) AllowLongs = false; ObjectSetInteger (ChartID (), Longs desativado, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Longs desativado, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Longs desativado, OBJPROP_TEXT, Longs desativado); else AllowLongs = true; ObjectSetInteger (ChartID (), Longs desativado, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Longs desativado, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Longs desativado, OBJPROP_TEXT, Longs ativado); if (sparam == Shorts desativado) if (AllowShorts) AllowShorts = false; ObjectSetInteger (ChartID (), Shorts desativados, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Shorts desativados, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Shorts desativados, OBJPROP_TEXT, Shorts desativados); else AllowShorts = true; ObjectSetInteger (ChartID (), Shorts desativados, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Shorts desativados, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Shorts desativados, OBJPROP_TEXT, Shorts ativados); if (sparam == Fechar tudo) CloseAll (); ObjectSetInteger (ChartID (), Fechar tudo, OBJPROP_STATE, false); if (sparam == Disabled) if (NotDisabled) NotDisabled = falso; ObjectSetInteger (ChartID (), desativado, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), desativado, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Desativado, OBJPROP_TEXT, Desativado); else NotDisabled = true; ObjectSetInteger (ChartID (), desativado, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), desativado, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), desativado, OBJPROP_TEXT, ativado); if (sparam == Comprar) if (NotDisabled) UpCycle (); ObjectSetInteger (ChartID (), Compra, OBJPROP_STATE, false); if (sparam == Sell) if (NotDisabled) DownCycle (); ObjectSetInteger (ChartID (), vender, OBJPROP_STATE, false);/ ----------------------------------------------- -------------------

  2. #2
    Verifique o estado do objeto - não presuma a condição e então funcionará

  3. #3

    Avalie o estado do objeto - não presuma o estado e depois disso funcionará
    Obrigado por responder. Não tenho certeza do que você quer dizer. É um botão, é clicado ou não? Estou faltando alguma coisa aqui?

  4. #4

    citação Obrigado por responder. Não tenho certeza do que você quer dizer . É um botão, possivelmente é clicado ou não? Estou faltando alguma coisa aqui?
    Sim. Você não está verificando a condição desse botão, mas apenas verificando se um evento foi registrado com o nome desse botão. Você precisa de algo como ... Código inserido ... if (sparam == button.Name () button.State ()) ...

  5. #5

    Citação Sim Você não está avaliando a condição do botão, mas apenas verificando se um evento foi registrado usando o título do botão. Você precisará de algo como ...... if (sparam == button.Name () button.State ()) ...
    Obrigado pelo exemplo, vou procurá-lo e adicioná-lo ao meu código. Mas como isso está ligado ao fato de eu clicar no botão, algo ocorre (permitindo a abertura de comércios longos automatizados, por exemplo) e depois de um tempo, vejo o botão permanecer clicado, mas a função vinculada a ele não está sendo executada. Quando você clica novamente no botão e liga, o ciclo é reiniciado. O que eu gostaria de resolver é que, se for clicado, ele deve ficar clicado e não apenas se mostrar clicado.

  6. #6
    quote Obrigado pelo exemplo, vou procurá-lo e adicioná-lo ao meu código. Mas como isso está ligado ao fato de eu clicar no botão, algo acontece (permitindo a abertura de comércios longos automatizados, por exemplo) e depois de um tempo, percebo que o botão ainda está clicado, mas a função vinculada a ele não está sendo executada. Quando você clica novamente no botão e liga, o ciclo é reiniciado. O que eu gostaria de resolver é que, se for clicado, ele deve permanecer clicado e não apenas se mostrar.
    Siga o conselho de seus mais velhos e inspecione a maldita condição dos botões!
    você também precisará definir o estado do botão de volta para falso depois que sua função terminar. Código inserido if (sparam == button.Name () button.State ()) some_func (); button.State (false);

  7. #7
    citação Siga o conselho dos mais velhos e verifique o estado do botão!
    você também quer definir o estado do botão de volta para falso após a conclusão da sua função. Se (sparam == button.Name () button.State ()) some_func (); button.State (false);
    I'm So o código agora parece algo assim, eu já estou colocando o estado no código para que eu apenas inclua a função ButtonState () que retorna verdadeiro ou falso de acordo com o estado de correspondência, devo ter feito algo errado ou não sabia, porque agora eu tenho que clicar em 2-3 vezes até que o botão receba o texto e o estado corretos. Por que é tão difícil? Eu avaliei meu primeiro código e ele produz TrueFalse de acordo com o que foi clicado, o que pode possivelmente criar o estado de um botão diferente do exibido na tela? Vencimento
    Código inserido bool ButtonState (string ButtonName) if (ObjectGetInteger (0, NomeDoBug, OBJPROP_STATE) == verdadeiro) retorna verdadeiro; mais retorno falso; void OnChartEvent (const int id, const longo lparam, const duplo dparam, const string sparam) {se (id == CHARTEVENT_OBJECT_CLICK) {if (sparam == Longos ButtonState (Longs)) {if (AllowLongs) AllowLongs = false; ObjectSetInteger (ChartID (), Longs, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Longs, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Longs, OBJPROP_TEXT, Longs desabilitados); else AllowLongs = true; ObjectSetInteger (ChartID (), Longs, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Longs, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Longs, OBJPROP_TEXT, Longs ativados); ...

  8. #8
    Se esse for o caso, você tem um problema no upstream com qualquer lógica que esteja configurando o bool AllowLongs. Você também pode simplificar sua função de verificação de estado para apenas: Inserted Code bool buttonState (série button_name) retorna ObjectGetInteger (0, button_name, OBJPROP_STATE);

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.