RaptorUK: Para fazer o que . . . você não explicou o que realmente quer fazer . . apesar de lhe terem sido feitas perguntas específicas . . se você ignorar as perguntas que lhe são feitas para que você possa ser ajudado, então você será ignorado muito rapidamente.
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
externdouble LotPerThousand=0.1; // If you had 1000 balance what lot size would you useint start()
{
double lots;
lots=NormalizeDouble((LotPerThousand/1000)*AccountBalance(),2);
if(lots<MarketInfo(Symbol(),MODE_MINLOT)){ lots=MarketInfo(Symbol(),MODE_MINLOT); }
if(lots>MarketInfo(Symbol(),MODE_MAXLOT)){ lots=MarketInfo(Symbol(),MODE_MAXLOT); }
...
OrderSend(Symbol(),OP_BUY,lots,...)
...
return0;
}
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
Bingo! Tonny, isto é exatamente o que eu queria que funcionasse no testador de estratégia e o auto incrementa o tamanho do lote mantendo a porcentagem. É melhor que o meu anterior, com inúmeras declarações de agradecimento a todos! :-)
Bem, eu só me lembro da matemática onde se a é para b então c é para? a fórmula seria (b/a)*c neste caso c é o saldo de sua conta. E o resultado respeita a proporção de a:d, ou seja, digamos que o resultado é d então a:b é o mesmo que c:d e b:a é a mesma proporção que d:a . Em seguida, basta colocar a fórmula em normalizar duas casas decimais para obter um valor de lote com duas casas decimais arredondadas, caso os cálculos retornem mais casas decimais do que duas, das quais o final do pedido seria rejeitado como um tamanho de lote inválido. A partir daí, verifique se este valor é inferior ao lote mínimo exigido, se assim for, use o mínimo exigido e se for superior ao máximo exigido, então use o máximo como valor de lote.
/* new value of lot would be (old lot/old balance)*new balance in this case we fix old balance at 1000 and new balance is the current balance i.e. (LotPerThousand/1000)*AccountBalance() */
lots=NormalizeDouble((LotPerThousand/1000)*AccountBalance(),2); // round two 2 decimal places incase more than 2 decimal places is returnedif(lots<MarketInfo(Symbol(),MODE_MINLOT)){ lots=MarketInfo(Symbol(),MODE_MINLOT); } // if lower than minimum required use the minimumif(lots>MarketInfo(Symbol(),MODE_MAXLOT)){ lots=MarketInfo(Symbol(),MODE_MAXLOT); } // if higher than maximum required use the maximum
WHRoeder: Desculpe, o tamanho do lote deve estar entre minlot e maxlot E um múltiplo de loteStep.
querido WHRoeder, por favor, não engane as pessoas dando códigos que só têm muitos erros, você não definiu o seu objeto no código e você está dando a alguém para usá-lo, por favor, pare seu comportamento malicioso
Para fazer o que . . . você não explicou o que realmente quer fazer . . apesar de lhe terem sido feitas perguntas específicas . . se você ignorar as perguntas que lhe são feitas para que você possa ser ajudado, então você será ignorado muito rapidamente.
para turbo ou não para turbo
para turbo ou não para turbo
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
Bingo! Tonny, isto é exatamente o que eu queria que funcionasse no testador de estratégia e o auto incrementa o tamanho do lote mantendo a porcentagem. É melhor que o meu anterior, com inúmeras declarações de agradecimento a todos! :-)
Desculpe, o tamanho do lote deve estar entre minlot e maxlot E um múltiplo de loteStep.
querido WHRoeder, por favor, não engane as pessoas dando códigos que só têm muitos erros, você não definiu o seu objeto no código e você está dando a alguém para usá-lo, por favor, pare seu comportamento malicioso
Bem, como você parece querer o mais simples possível, como você é um novato, eu procurei o mais fácil de entender.
tonny, muito obrigado pelo código que você deu, realmente funcionou muito bem
eu estava encontrando desde 2 dias e até mesmo quarentena com minha esposa sobre ele!
obrigado