[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 226

 
doon:

Como faço para comprar ou vender um EA em um determinado momento(dormir para não usar)?

As funções de data e hora ajudarão: https://book.mql4.com/ru/functions/datetime
 
Fam:
As funções de data e hora ajudarão: https: //book.mql4.com/ru/functions/datetime

Obrigado, mas você ainda terá que inserir um deslize lá.

 
Gente! Estou tentando fazer, que negociaria muito, dependendo do risco.... o que não funciona.... escreve
 EURUSD,M15: OrderSend error 4051

me diga onde está o erro....

void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenBuy); 
   if (UseSound) PlaySound(NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenSell); 
   if (UseSound) PlaySound(NameFileSound); 
} 
string GetCommentForOrder() {   return(Name_Expert); } 
double GetSizeLot() { 
   double ldlot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
   ldlot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) ldlot=NormalizeDouble(ldlot-ldlot*losses/DecreaseFactor,1);
     }
   if(ldlot<0.1) ldlot=0.1;
                         } 
double GetStopLossBuy() {       return (Bid-sStopLoss*Point);} 
double GetStopLossSell() {      return(Ask+sStopLoss*Point); } 
double GetTakeProfitSell() {    return(Bid-sTakeProfit*Point); } 
double GetTakeProfitBuy() {     return(Bid+sTakeProfit*Point); } 

return(0);
 

Obrigado a todos vocês, vou experimentar...
 
charter:

Receio que isto só seja verdade para a série cronológica.

No meu caso, não há onde nem mesmo espetar o dedo.

Sua idéia é correta, ou seja, a ordem tem que ser invertida de alguma forma, mas ainda não sei como


Não se preocupe, funciona.
 
Vovo4ka:
Gente! Estou tentando fazer, que negociaria muito, dependendo do risco.... o que não funciona.... escreve

me diga onde está o erro....


esqueceu de colocar uma linha no lote.
return (ldlot);
 
todem:

Esqueci de colocar uma fila no lote.

right...... forgot.... thank you very much.... I checked it 20 times already, I couldn't figure out what the heck the heck...)
 

Ajuda com uma pergunta sobre requote+slippage.

A situação é a seguinte: envio uma solicitação de transação por Expert Advisor, Slippage=3 pt, erro 138 Ocorre a solicitação. Eu tentei RefreshRates() e tentei novamente com um novo Ask, mas o preço do servidor é melhor do que o Ask I enviado (segunda vez após o RefreshRates()), e logicamente preciso concordar, mas como o desvio do preço do servidor é maior do que Slippage no pedido - este pedido é rejeitado. (((

Como você pode controlar esta situação? Ie se o preço do servidor é melhor do que mover o Slippage ou o quê, para que o pedido seja aceito pelo servidor. Ou isso não é possível?

 
ZZZEROXXX:

Ajuda com uma pergunta sobre requote+slippage.

A situação é a seguinte: envio uma solicitação de transação por Expert Advisor, Slippage=3 pt, erro 138 Ocorre a solicitação. Eu tentei RefreshRates() e tentei novamente com um novo Ask, mas o preço do servidor é melhor do que o Ask I enviado (segunda vez após o RefreshRates()), e logicamente preciso concordar, mas como o desvio do preço do servidor é maior do que Slippage no pedido - este pedido é rejeitado. (((

Como você pode controlar esta situação? Ie se o preço do servidor é melhor do que mover o Slippage ou o quê, para que o pedido seja aceito pelo servidor. Ou isso não é possível?


Aumentar o escorregamento. As negociações devem ter sido abertas em um mercado rápido. Acontece às vezes depois de notícias importantes que o Eurobucks é tão rápido em 1-2 ticks que é um pesadelo. E enquanto o servidor está processando o pedido do consultor, o preço muda muito acentuadamente.
 
Zhunko:
O MT4 tem um conversor incorporado. Serviço -> Arquivo de citações.

Obrigado! Mas o objetivo é o seguinte. Barras diárias de compensação (castiçais), atualizadas com a chegada das citações, o gráfico se comporta como um gráfico normal: você pode pendurar outros indicadores, EAs, construir canais, níveis, etc. sobre ele. Deve ser algo parecido com os prazos não-padronizados, mas não-padronizados em barras móveis (castiçais) em relação ao tempo terminal: H4 - em -3, -2, -1, 1, 2 ou 3 horas; D1 - em -23, -22, ... 1, 2, ... ou 23 horas; W1 - por -6, -5, ... ou 6 dias e assim por diante. O offset deve ser definido nos parâmetros de entrada do indicador.

Existe tal coisa?

Agradeço antecipadamente.