[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 392

 

Olá a todos, eu acho que escrevi para o lugar certo. Tenho um grande desejo de aprender a linguagem de programação mql4 para começar com scripts, depois indicadores e EAs, em particular, agora eu mesmo defini uma tarefa para escrever um EA para comercializar usando uma das táticas. (Li no fórum que eles começam com os roteiros). Sou um especialista em codificação, sei pouco sobre Pascal e Delphi e estudei C ++, li mql mas acho que não é tão diferente. Preciso de ajuda para escrever programas de otimização de códigos certos ou errados, etc... Quem pode ajudar?

Obrigado de antemão!!!

 

Por favor, informe por exemplo, aqui está um código simples, o conselheiro abre BAY com parada e lucro, e coloca ordem pendente. O que devo escrever no código, para que quando ele atingir um lucro, a ordem pendente seja excluída e tudo comece do início..... e quando ele atingir uma parada, por exemplo, Alerta ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#direitos de propriedade intelectual "".
#ligação de propriedade ""
Lote duplo externo = 0,01;
Exterior int TakeProfit = 200;
StopLoss int externo = 200;
Passo duplo externo = 0,0020;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
se (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==falso)
{
{ EncomendarEnviar(Símbolo(),OP_BUY,Lote,Perguntar,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Verde); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,0,Red); }
}
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+

 
MIR-ASOV:

Por favor, informe sobre o exemplo, aqui está um código simples, a EA abre BAY com uma parada e lucro, e coloca ordem pendente. O que eu preciso escrever no código, para que quando você tiver um lucro pendente removido e tudo começar mais de 12..... e quando você tiver uma parada, por exemplo, seja Alerta ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#direitos de propriedade intelectual "".
#ligação de propriedade ""
Lote duplo externo = 0,01;
Exterior int TakeProfit = 200;
StopLoss int externo = 200;
Passo duplo externo = 0,0020;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
se (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==falso)
{
{ EncomendarEnviar(Símbolo(),OP_BUY,Lote,Perguntar,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Verde); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,0,Red); }
}
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+

Procure nos livros didáticos um algoritmo para a contabilidade dos pedidos. Então conecte a lógica a tudo isso, e o resultado será óbvio!

Além disso, trabalhar a sintaxe do código. Muitos suportes encaracolados...


frixer:

Olá a todos, eu acho que escrevi para o lugar certo. Tenho um grande desejo de aprender a linguagem de programação mql4 para começar com scripts, depois indicadores, e EAs, em particular, agora eu mesmo estabeleci uma tarefa para escrever um EA para comercializar por uma das táticas. (Li no fórum que eles começam com os roteiros. Devo ter algum conhecimento em programação, estudos Pascal, Delphi e C++, li mql e acho que não é muito diferente. Preciso de alguns conselhos sobre como escrever programas certos ou errados, otimização de código, etc. Quem pode ajudar?

Obrigado de antemão!!!

Portanto, você escreve aqui, nós podemos ajudar. Ou você precisa de um tutor em casa? :)))
 

Como realizar tal ação em uma EA:

Todas estas condições podem não seguir uma após a outra (pode ser depois de uma hora ou duas ou três), então temos que fazer com que assim que o indicador atingir 1,0000, esta condição não seja mais verificada a cada tique, e esperar até que uma barra feche com a queda, e depois que estas 2 condições não sejam verificadas a cada tique, e esperar até que o indicador atinja 0,9980 ou menos. Assim que todas as condições forem cumpridas, abrimos uma ordem de mercado para vender 0,1 lote com um stop loss de 100p e ter lucro de 400p.

Alguém pode ajudar? Talvez alguém tenha um exemplo pronto ou me dê um link?

 
kolyango:

Como realizar tal ação em uma EA:

Todas estas condições podem não seguir uma após a outra (pode ser depois de uma hora ou duas ou três), então temos que fazer com que assim que o indicador atingir 1,0000, esta condição não seja mais verificada a cada tique, e esperar até que uma barra feche com a queda, e depois que estas 2 condições não sejam verificadas a cada tique, e esperar até que o indicador atinja 0,9980 ou menos. Assim que todas as condições forem cumpridas, abrimos uma ordem de mercado para vender 0,1 lote com um stop loss de 100p e ter lucro de 400p.

Alguém pode ajudar? Talvez alguém tenha um exemplo pronto ou me dê um link?

Quando um evento ocorre, coloque uma condição booleana e um prazo de validade.
 
kolyango:

Como realizar tal ação em uma EA:

Todas estas condições podem não seguir uma após a outra (pode ser em uma hora ou duas ou três), então temos que fazer com que assim que o indicador atingir 1,0000, esta condição não seja mais verificada a cada carrapato, e esperar até que uma barra feche com a queda, e depois disso estas 2 condições não sejam verificadas a cada carrapato, e esperar até que o indicador atinja 0,9980. Uma vez satisfeitas todas as condições, abrir uma ordem de mercado para vender 0,1 lote com um stop loss de 100p e ter lucro de 400p.

Alguém pode ajudar? Talvez alguém tenha um exemplo pronto ou me dê um link?


Aqui está um artigo para ajudar - veja a analogia ali...

No trailer - a inclusão da execução destes critérios comerciais de acordo com este artigo, escrito de acordo com o tutorial, veja aqui.

Você tem tudo da mesma maneira...

Arquivos anexados:
criterion.mqh  12 kb
 
kolyango:

Como realizar tal ação em uma EA:

Todas estas condições podem não seguir uma após a outra (pode ser em uma hora ou duas ou três), então temos que fazer assim que o indicador atingir 1,0000, esta condição não é mais verificada a cada tick, e esperar até que uma barra feche com a queda, e depois disso estas 2 condições não são verificadas a cada tick, e esperar até que o indicador atinja 0,9980. Uma vez satisfeitas todas as condições, abrir uma ordem de mercado para vender 0,1 lote com um stop loss de 100p e ter lucro de 400p.

Alguém pode ajudar? Talvez alguém tenha um exemplo pronto ou me dê um link?

É tão simples quanto isso. Vamos usar bandeiras como semáforo. Haverá três blocos de código, cada um dos quais será executado somente se o anterior já tiver sido executado.

Inicialmente todas as bandeiras ==falso.

Assim que a primeira condição é cumprida, a primeira bandeira=verdadeiro; agora o segundo bloco de código é executado. Tão logo sua condição seja cumprida, colocar segunda bandeira=verdadeira;
Agora o terceiro bloco de código é executado. Assim que sua condição for cumprida, colocar a terceira bandeira=verdadeira; E assim por diante.

 
artmedia70:

É tão simples quanto isso. Vamos usar as bandeiras como semáforo. Haverá três blocos de código, cada um dos quais será executado somente se o anterior já tiver sido executado.

Inicialmente todas as bandeiras ==falso.

Assim que o primeiro tiver sido executado, colocamos primeiro bandeira=verdadeiro; agora o segundo bloco de código é executado. Tão logo sua condição seja cumprida, colocar segunda bandeira=verdadeira;
Agora o terceiro bloco de código é executado. Assim que sua condição for cumprida, colocar a terceira bandeira=verdadeira; E assim por diante.



E quando largar as bandeiras ele não escreveu
 

Você pode me dizer qual fonte o terminal usa? Eu gostaria que meus comentários fossem os mesmos que os padrões

if(spread >= 20)
       spreadColor = Red;
  else
       spreadColor = White;
  ObjectSetText("Spread", "Spread " + Symbol() + ": " + DoubleToStr(spread, 0), 8, "Tahoma Bold"/*"Calibri"*/, spreadColor);//"Webdings"
 

Pessoal, ao otimizar em um terminal, eu inicio um teste em outro terminal e o último terminal trava com este erro...alguém sabe qual é a razão possível???? Antes, quando iniciei este terminal - ele pediu uma atualização para a versão 409, eu o atualizei, ele reiniciou e continuou pedindo a mesma atualização...eu - cancelei, fechei, depois eu mesmo o executei...ele continuou pedindo essa atualização.

Ainda não chequei o novo terminal... A carga da CPU está a 100% o tempo todo... Executando o teste em modo de visualização no terceiro terminal - testado fino.