[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 96

 

Deve estar me faltando algo:

extern double LotsStep = 0.1;
       double Lots;
...

int start()
{
   ...
   
   if (NewOrder)
   { 
      if (OrdersTotal() == 0)
         Lots = LotsStep;
      else
         Lots += LotsStep;
      
      Lots = TrueLots(Lots);
      if (Lots < 0)
      {
         Alert("Не хватает денег на ", DoubleToStr(-Lots, 2), " лотов!");
         Lots = 0;
         Buy  = False;
         Sell = False;
      }
      
      NewOrder = False;
   }
      
   //Блок открытия на бай
   
   ...
}

double TrueLots(double Lots)
{
   double Free    = AccountFreeMargin();
   double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   
   if (Lots > Max_Lot)
   {
      Alert("...");
      Lots = Max_Lot;
   }

   if (Lots*One_Lot > Free)
      return(-Lots);
   
   return(Lots);
}

 

Mais um problema, eu tive um erro '(' definição da função inesperada, coloquei esta função " double LotSize()
".
Queroaumentar cada lote subsequente a ser aberto, mas quero que seja aberto somente com séries de sinais para compra, e quando sinais opostos vierem, contra zero e uma nova pirâmide começar a ser construída, se for possível, é por isso que peguei este fragmento de código, porque achei que era responsável por este passo, mas não foi o que aconteceu...

 
MaxZ:

Deve estar me faltando algo:


Obrigado. Vou tentar agora.
 
SeALALex:
Aí está.


Olhe para o trailer - corrija você mesmo.

Arquivos anexados:
b-lots.mqh  3 kb
 
SeALALex:

Obrigado, vou tentar agora.

Também acrescentei um cheque para garantir que um determinado número de Lotes possa ser aberto. Improvise e você terá sorte! :))


A lógica é a seguinte:

Se não há ordens no mercado (aqui, excluí as ordens pendentes), então atribuímos o valor inicial à variável Lotes (neste caso, o próprio passo).

Se já existem ordens no mercado, então, a cada abertura, o parâmetro Lots será aumentado pelo valor do LotsStep.

Não sei qual é sua tarefa específica, é por isso que escrevi "improvisar".


Romano.:


Olhe para o trailer - corrija você mesmo.

É melhor dominar tudo com suas próprias mãos e, ao mesmo tempo, aprender a codificar! :D

 
MaxZ:

Deve estar me faltando algo:


Maxim, se você tiver tempo, dê uma olhada neste tópico... :-)))

Não consigo encontrar um "denominador comum" para todos os EAs ao mesmo tempo (uma opção universal)... :-(((

Em meus códigos de EAs - diz sobre "dabble" overflow...

Vou fazer uma pergunta detalhada com screenshots nesse fio ...

P.S. Para algumas versões de corujas - funciona bem, para outras não... Agora, tudo é feito de acordo com as regras, incluindo a multiplicação. Seu produto também precisa ser decomposto para uma abordagem universal em multiplicadores. Eu fiz um array, como você recomendou para a variável TWR, mas até agora não está funcionando para todos os EAs, para alguns EAs o tipo de dados "duplo" ainda transborda com negócios de até 1000 peças na história... ao calcular a f. ideal final.

 
MaxZ:

Deve estar me faltando algo:


Desculpe, eu nem sempre o pego.


NewOrder error -'NewOrder' - variável não definida, onde devo nomeá-la primeiro?

 
Roman.:


Maxim, se você tiver tempo, dê uma olhada neste tópico... :-)))

O que eu devo ver no tópico do fórum ProCapital? :))


Romano.:


Não posso chegar a um "denominador comum" para todos os EAs ao mesmo tempo (uma opção universal)... :-(((

Em meus códigos de Conselheiros Especialistas - diz sobre "transbordamento"...

Vou fazer uma pergunta detalhada com screenshots nesse fio ...

P.S. Para algumas versões de corujas - funciona bem, para outras não... Agora é feito apenas por livro, incluindo a multiplicação... Seu produto também precisa ser decomposto para uma abordagem universal em multiplicadores. Eu fiz um array, como você recomendou para a variável TWR, mas até agora não está funcionando para todos os EAs, para alguns EAs o tipo de dados "duplo" ainda transborda com negócios de até 1000 peças na história... ao calcular a f. ideal final.

Na filial ProCapital? Por que lá? Afixe isso, eu vou olhar as imagens, vou pensar sobre isso.
 
MaxZ:

O que eu devo ver no tópico do fórum ProCapital? :))


No ramo da ProCapital? Por que lá? Afixe isso, eu vou olhar as imagens, vou pensar sobre isso.


Desculpe, havia um elo errado no buffer - um antigo. :-)))

Aqui.

Agora eu mesmo no trabalho - pergunta detalhada com screenshots - postarei no mesmo tópico hoje à noite ou amanhã. :-)))

 
SeALALex:

Desculpe-me, nem sempre o pego na mosca.


NewOrder error -'NewOrder' - variável não definida, como eu a chamo primeiro?

Com a experiência vem a experiência! ;)


NewOrder é uma variável do tipo bool. Deve ser declarado no início da função Start(), por exemplo. Tudo depende da estrutura do seu código.

Definimos a variável NewOrder como True, quando queremos abrir um pedido.

Por exemplo, nossa EA trabalhará com preços abertos e o indicador de Média Móvel:

if ((Close[2] <= MA2 && Close[1] > MA1) || (Close[2] < MA2 && Close[1] >= MA1))
{
   NewOrder = True;
   Buy = True;
}