[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 74

 
Figar0 >> :

Afinal, o que é este projeto?

Sim, eu já descobri. Fiz o teste.

>> está claro que acabei de remover o valor indicador, qual é a confusão?

 
1Rakso писал(а) >>

Eu já descobri, passei pelo teste.

É claro que acabei de remover o valor indicador, então qual é a confusão?

Só não está claro o que é, como você pode responder se você entende o que está perguntando?

Se você não sabe o que é, você pode usá-lo porque não sabe o que comparar com Bid. Está correto.

 
anat >> :



Você pode me dizer como inserir uma condição nesta construção se(iSAR(NULL,0,passo0,0.1,0)<Fechar[0]), o que significa que se, por exemplo, as posições de compra são abertas, então as posições de venda não são abertas até que todas as posições de compra sejam fechadas. Em outras palavras, um ciclo de negociação, compramos 3 posições, esperamos até que todas as três sejam fechadas. As posições são fechadas somente por Stop Loss ou Take Profit. Todas as posições são fechadas, aguardam o sinal, recebem um sinal, compram ou vendem (dependendo do sinal) 3 posições, etc. As "Funções úteis da KimIV" foram estudadas. Você pode usar as funções CountOrders(), ExistOrders(), ExistPositions(). Mas como eu praticamente os inseri? A construção if((iSAR(NULL,0,passo0,0.1,0)>Close[0])&& ExistPosições(NULL,OP_SELL)==falso) não funciona. Eu entendo que preciso inserir uma variável lógica, mas como faço isso na prática? Eu não entendo nada.


Leia o fio completo. Eu encontrei a solução - coloque todos os códigos em chaves encaracoladas e escreva se (OrderTotal( ) == 0) antes deles. Cru, mas funciona. Eu gostaria de usar variáveis bool para abrir qualquer número de ordens, guiado por uma condição se (OrdersTotal() >=maxOpen) retornar;
 
anat >> :
Eu li todo o ramo. A solução é a seguinte - incluir todos os códigos dentro de chaves encaracoladas e antes deles escrever se (OrderTotal( ) == 0). Cru, mas funciona. Gostaria de usar variáveis bool para abrir qualquer número de pedidos, com base na condição se (OrdersTotal() >=maxOpen) retornar;

Se você quiser separar Total_sell e Total_buy, tente usar a função

int CalculateCurrentOrders(símbolo de corda) do SimpleMACD

int CalculateCurrentOrders(int Type)// OP_BUY , OP_SELL
  {
   int buys=0;
//----
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() )
        {
         if(OrderType()== Type)  buys++;
        }
     } return( buys);
  }
 
Por favor, diga-me qual função retorna o tempo de fechamento da vela atual?
 
Diver-si >> :

Não se trata de estratégias, é apenas uma suposição a ser verificada. A propósito, por que a EA não está fazendo negócios? Eu não entendo por que.

>> Eu não sei. Eu a executei no testador e funcionou. Talvez você tenha cometido um erro com os parâmetros. Ou talvez você não tenha assinalado a caixa de seleção para permitir que a EA negociasse. E o tempo de uma grande TF é definido em minutos! ou seja, na variável TFUP você tem que especificar não m5 mas 5, não m30 mas 30, não H1 mas 60, etc.

 
gmMarat писал(а) >>
Por favor, diga-me qual função retorna o tempo de fechamento da vela atual.

Qual é o horário de fechamento da vela atual? A vela atual ainda não está fechada, caso contrário não é mais atual, podemos assumir que este tempo é aproximadamente Tempo[0]+Periodo()*60

 
Figar0 >> :

Qual é o horário de fechamento da vela atual? A vela atual ainda não está fechada, caso contrário não é mais atual, podemos assumir que este tempo é aproximadamente Tempo[0]+Periodo()*60

Figar0 obrigado, era o que eu precisava

 
Como determinar o valor de um pip em um lote de comércio? Fui aconselhado a usar a fórmula MarketInfo(Symbol(),MODE_LOTSIZE)*Point, mas é absolutamente errado! Ele retorna 100000$*0,001=100$ por USDJPY, que na verdade é um dólar, como para a maioria dos símbolos.
 
Цена 1 пункта для стандартного лота:
 
 double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     )      ;
double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  )      ;
double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE )      ;

double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота
Цена 1 пункта для ордера известного размера "ad.OrderSize":

double ad.OrderPoint   = ad.NominalPoint * ad.OrderSize                 ;
Razão: