Menos código, mais ação... escrever um EA - página 9

 
Vladimir Simakov:

É como, o que eu não estou verificando?

Não o execute apenas uma vez, execute-o várias vezes.


 
Vladimir Simakov:

Está bem que esta seja toda a dança do pandeiro?

Se os dados não estiverem prontos, o método retornará 0,0 que é facilmente verificado.

Você também pode escrevê-lo na documentação, como uma ação obrigatória do usuário ao acessar um método.

Com uma nota de que "N horas de desenvolvimento foram feitas para isto".

 
MQL_Easy
MQL_Easy
  • www.mql5.com
MQL_Easy is an open source cross platform library for developing MQL4 and MQL5 applications. The purpose of this library is to make the mql development easy, safe and fast in order to focus more on implementing complex trading ideas. The cross platform property assure that the same piece of code works on both platforms. In addition, it has...
 

Obrigada, dei uma olhada.

Tive uma idéia um pouco diferente do que apenas fazer uma hierarquia de classes "mais leve".

Aqui abrimos o terminal e o que vemos ?

- tabela com pedidos

- tabela com histórico

- uma tabela com citações

- gráficos. Mas o gráfico em si é também uma tabela, apenas uma representação gráfica

e dar ao programador (e a mim em particular) um meio (interface) para usar estas/tabelas semelhantes o mais facilmente possível.
O trabalho é quase como no Excel, exceto que é mql e tempo de compilação: tabelas abertas, colunas de set/nome, fórmulas de tipo.

Basicamente, há uma classe DataFrame implementando uma tabela com uma disciplina de cálculos (sob demanda). Comecei a experimentar a melhor maneira de fazê-lo com pedidos/tickets/histórico.

Mas agora é difícil encontrar o tempo e outras razões

 
Maxim Kuznetsov:

fazer uma hierarquia de classes "mais leve".

Várias tentativas diferentes de fazer algo próprio mostraram que não basta criar um API, você ainda precisa fazer com que ele funcione de forma estável.

Deu o exemplo mais simples de um teste.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Menos código, mais rolante... escrever um EA

fxsaber, 2019.03.12 21:46

ZZI Esta tarefa pode ser bastante considerada como um teste inicial das habilidades comerciais do MT5. Portanto, todos são bem-vindos a experimentar.

 
Quase impossível criar um invólucro para MT4 que possa competir com MQL4 puro

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Manter o mesmo número de posições de compra e venda na MT5

fxsaber, 2019.04.20 10:43

int GetAmount( const int Type )
{
  int Amount = 0;
  
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    Amount += OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == _Symbol);

  return(Amount);
}

void OnInit()
{
  OnTrade();
}

void OnTrade()
{
  bool Res = true;
  
  while (Res)
  {
    const int AmountBuy =  GetAmount(OP_BUY);
    const int AmountSell = GetAmount(OP_SELL);
    
    if (Res = (AmountBuy != AmountSell))
      Res = ((AmountBuy > AmountSell) ? OrderSend(_Symbol, OP_SELL, 1, Bid, 100, 0, 0)
                                      : OrderSend(_Symbol,  OP_BUY, 1, Ask, 100, 0, 0)) > 0;
  }
}
 
fxsaber:
É quase impossível criar um invólucro para MT4 que possa competir com MQL4 puro

void OnTick() {

   Trade(MarketOrders(OP_SELL).Count()-MarketOrders(OP_BUY).Count());

}

tudo é possível.

 
Maxim Kuznetsov:

void OnTick() {

   Trade(MarketOrders(OP_SELL).Count()-MarketOrders(OP_BUY).Count());

}

tudo é possível.

Coloque-o lá fora e vamos dar uma olhada.

 
fxsaber:

Coloque-o lá fora e vamos dar uma olhada.

Já estive aqui antes - "afixar" faz com que você seja banido.

o tema está encerrado.

 
Maxim Kuznetsov:

Já estive aqui antes - há uma proibição para "afixar".

A ligação no PM novamente.


A SZZ pode e assim

// https://www.mql5.com/ru/forum/305859/page9#comment_11400794
unsigned char binary_array[]=
  {
   0x68,0x74,0x74,0x70,0x73,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x6D,0x71,0x6C,0x35,
   0x2E,0x63,0x6F,0x6D,0x2F,0x72,0x75,0x2F,0x66,0x6F,0x72,0x75,0x6D,0x2F,0x33,0x30,
   0x35,0x38,0x35,0x39,0x2F,0x70,0x61,0x67,0x65,0x39,0x23,0x63,0x6F,0x6D,0x6D,0x65,
   0x6E,0x74,0x5F,0x31,0x31,0x34,0x30,0x30,0x37,0x39,0x34
  };
  
void OnStart()
{
  Print(CharArrayToString(binary_array));
}