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

 
OTPOK:

Mais uma coisa - Como posso mudar programmaticamente a perda de uma ordem já aberta?


https://docs.mql4.com/ru/trading/OrderModify
 
FOReignEXchange:


Boa tarde. Presumo que você nunca tenha atribuído valores a variáveis. É muito fácil de fazer.

PriceBuy=Ask


Na verdade: PriceBuy=Bid;
 
Roger:

Na verdade: PriceBuy=Bid;

Bem, isso é uma questão de opinião. E se for realista, Asc.
 

Olá.

Favor me dizer se a expressão para calcular a soma total de uma seqüência de números delta*(2*Lot+Lot*(i-2))*(i-1)/2está correta :

para (int i=1; i<=MaxOrders; i++) {

soma dupla=Lot;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2; }

Se não houver erros, como substituir o valor "Sum+" em expressão como X=("Sum+" + Y)/Z ????

Código fonte:

for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=Lot;
         Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;
         DeltaProfitL = (Sum+i*delta*Lot+Lot*R_Lot*R_point+Lot*R_Lot*delta*i)/((2*Lot+Lot*(MaxOrders-1))*MaxOrders/2+Lot+Lot*R_Lot);
         if (takeprofit!=0) TP  = NormalizeDouble(Price + (takeprofit + DeltaProfitL*zero_tp)*Point,Digits); else TP=0;
         if (stoploss!=0)   SL  = NormalizeDouble(Price - stoploss*Point,Digits); else SL=0;     
         OPENORDER ("Buy Limit",Price,SL,TP,i);
      }
   }

Obrigado de antemão.

 
nemo811:

Olá.

Favor me dizer se a expressão para calcular a soma total de uma seqüência de números delta*(2*Lot+Lot*(i-2))*(i-1)/2está correta :

para (int i=1; i<=MaxOrders; i++)

soma dupla=Lot;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Se não houver erros, como substituir o valor "Sum+" na expressão como X=("Sum+" + Y)/Z ????

Obrigado de antemão.


Isso não funcionaria?

for (int i=1; i<=MaxOrders; i++)

Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Só não está claro por que Sum=Lot; E para que serve em geral.

 
FOReignEXchange:


Só não está claro por que Sum=Lot; e para que em geral.

Fiz uma pergunta semelhante na página 81. Eu fiz tudo de acordo com a resposta que me foi dada. Mas, até agora, nenhum resultado.

Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2; - não é adequado para o meu cálculo.

 
delta*(2*Lot+Lot*(i-2))*(i-1)/2 é a fórmula numérica para a seqüência em questão. Preciso somar TODOS os números da seqüência dada.
 
nemo811:
delta*(2*Lot+Lot*(i-2))*(i-1)/2 é a fórmula do número da seqüência em questão. Preciso resumir TODOS os números da seqüência dada.


Por isso, escrevi uma fórmula para isso.

Eu entendo que você precisa calcular algo como isto

Soma =delta*(2*Lot+Lot*(1-2))*(1-1 )/2 +delta*(2*Lot+Lot*(2-2))*(2-1 )/2 +delta*(2*Lot+Lot*(3-2))*(3-1)/2 + ... etc.

Esta é a fórmula Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2, onde você estabelece as limitações para i no corpo do operador. Quando o operador terminar, a soma tomará o valor desejado. É importante que a soma seja igual a zero antes que o operador comece a fazer cálculos. Na saída do operador, a soma tomará o valor desejado.

 

Não tenho certeza de quanto custaria encomendar uma EA, mas tenho certeza de que posso fazer com que ela funcione em ambos os gráficos.

Ah, e em geral é possível fazê-lo funcionar uma vez para 2 moedas diferentes (simultaneamente em dois gráficos) e aberto em cada uma das diferentes profissões.

Por exemplo, eu comprei no primeiro e vendi no segundo?

E no encerramento de uma das transações abertas o oposto da transação já aberta....

E talvez alguém saiba, talvez exista um consultor especializado, apenas uma boa idéia me veio à mente.....

 
for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=0;
         Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;   ........
      }
}
Obrigado. Isto é a coisa certa a fazer?