Discussão do artigo "Desenvolvendo um EA de negociação do zero"

 

Novo artigo Desenvolvendo um EA de negociação do zero foi publicado:

Entenda como se dá o desenvolvimento de um EA para negociação programando o mínimo possível.

Este EA pode ser muito aperfeiçoado em diversos aspectos de forma que você poderá colocar ele para operar algum setup, é verdade que terá que adicionar mais código para ele ficar mais independente do MT5, mais isto vai da criatividade e necessidade de cada um.

O grande trunfo deste EA é o fato de ele usar o próprio MT5 para fazer as coisa que não estão no código do mesmo, e com isto ser extremamente estável e confiável.



Autor: Daniel Jose

 

Bom dia,

Muito bom, só não entendi uma coisa. Quando coloco a ordem no WIN e WDO o EA abre 6 ordens com o número de contratos que inseri em "alavancagem". Então mesmo se eu quiser operar com 1 contrato, não consigo, ele abre 6.

Será algum conceito que me passou despercebido? Sou iniciante, portanto, parto dessa premissa.

Muito obrigado por compartilhar.

 
Pelo q entendo precisa ter conhecimento de "Algo Trading" para mexer com isso...
 
Muito bom!
 
joecafrois #:
Pelo q entendo precisa ter conhecimento de "Algo Trading" para mexer com isso...

Não precisa ter conhecimento em AlgoTrading ... mas ele precisa estar habilitado sempre que você for usar um EA ( Expert Advisor ), caso contrário o EA fica com o seu funcionamento limitado.

 
Feresther #:

Bom dia,

Muito bom, só não entendi uma coisa. Quando coloco a ordem no WIN e WDO o EA abre 6 ordens com o número de contratos que inseri em "alavancagem". Então mesmo se eu quiser operar com 1 contrato, não consigo, ele abre 6.

Será algum conceito que me passou despercebido? Sou iniciante, portanto, parto dessa premissa.

Muito obrigado por compartilhar.

Pode estar acontecendo do sistema estar enviando mais de uma ordem quando você clica no mouse, os motivos podem ser diversos, mas obrigado por reportar 😁👍, para resolver este infortúnio, você deverá adicionar um teste extra no clique do mouse, os pontos a modificar ou adicionar estão marcados em VERDE ... muita atenção para digitar da forma como está, caso contrário poderá não enviar a ordem, ou ela não ser aceita pelo servidor ... mas adicionando este teste extra deverá resolver o seu problema. A lógica é a seguinte : Quando se clicar no mouse, a variavel STATIC será setada, e somente será resetada permitindo enviar uma nova ordem quando o mouse já não estiver pressionado.

inline void MoveTo(int X, int Y, uint Key)
{
        static double d_block = 0; 
        int w = 0;
        datetime dt;
        bool bEClick, bKeyBuy, bKeySell;
        double take = 0, stop = 0, price;
        bEClick  = (Key & 0x01) == 0x01;                //Clique esquerdo
        bKeyBuy  = (Key & 0x04) == 0x04;                //SHIFT Pressionada
        bKeySell = (Key & 0x08) == 0x08;                //CTRL Pressionada
        ChartXYToTimePrice(Infos.Id, X, Y, w, dt, price);
        ObjectMove(Infos.Id, Infos.szHLinePrice, 0, 0, price = (bKeyBuy != bKeySell ? AdjustPrice(price) : 0));
        ObjectMove(Infos.Id, Infos.szHLineTake, 0, 0, take = price + (Infos.TakeProfit * (bKeyBuy ? 1 : -1)));
        ObjectMove(Infos.Id, Infos.szHLineStop, 0, 0, stop = price + (Infos.StopLoss * (bKeyBuy ? -1 : 1)));
        if ((bEClick) && (bKeyBuy != bKeySell) && (d_block == 0)) CreateOrderPendent(bKeyBuy, Infos.Volume, (d_block = price), take, stop, Infos.IsDayTrade); else d_block = 0;
        ObjectSetInteger(Infos.Id, Infos.szHLinePrice, OBJPROP_COLOR, (bKeyBuy != bKeySell ? Infos.cPrice : clrNONE));
        ObjectSetInteger(Infos.Id, Infos.szHLineTake, OBJPROP_COLOR, (take > 0 ? Infos.cTake : clrNONE));
        ObjectSetInteger(Infos.Id, Infos.szHLineStop, OBJPROP_COLOR, (stop > 0 ? Infos.cStop : clrNONE));
};
 
Boa Tarde, onde eu ajusto o número de pontos e número de lotes para o mini-índice?
 
C4rl1n #:
Boa Tarde, onde eu ajusto o número de pontos e número de lotes para o mini-índice?

Na verdade neste código o ajuste é automático. Você diz o financeiro e o número de contratos a operar e o código faz o ajuste em termos de pontos ... Esta informação é dada no momento em que você coloca o Expert Advisor no gráfico. 😁👍

 
entendi, é porque estou querendo desenvolver o meu EA, mas o número de lotes e de pontos não esta batendo
Razão: