RaptorUK: Para hacer lo que . . . no has explicado realmente lo que quieres hacer . . a pesar de que se te han hecho preguntas específicas . . si ignoras las preguntas que se hacen para que te ayuden entonces serás ignorado muy rápidamente.
Bueno como parece que lo quieres lo más sencillo posible ya que eres un novato he buscado lo más 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;
}
Bueno como parece que lo quieres lo más sencillo posible ya que eres un novato he buscado lo más fácil de entender.
¡Bingo! Tonny esto es exactamente lo que quería que funciona en el probador de la estrategia y auto incrementa el tamaño del lote de mantener el porcentaje. Es mejor que mi anterior con innumerables sentencias if, ¡muchas gracias a todos! :-)
Bueno, acabo de recordar las matemáticas donde si a es a b entonces c es a... la fórmula sería (b/a)*c en este caso c es el saldo de tu cuenta. Y el resultado respeta la proporción de a:d, es decir, digamos que el resultado es d, entonces a:b es lo mismo que c:d y b:a es la misma proporción que d:a. Luego solo hay que poner la fórmula en normalize double para obtener un valor de lote redondeado con dos decimales en caso de que los cálculos devuelvan más decimales que dos de los cuales ordersend rechazaría como un tamaño de lote inválido. A partir de ahí comprueba si este valor es menor que el lote mínimo requerido, si es así utiliza el mínimo requerido y si es mayor que el lote máximo requerido entonces utiliza el máximo como valor del 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: Lo siento tonny el tamaño del lote debe estar entre minlot y maxlot Y un múltiplo de lotStep.
Estimado WHRoeder, por favor, no desorientar a la gente dando códigos que sólo tienen un montón de errores en ella, no se ha definido ls objeto en el código y le está dando a alguien a usarlo, por favor, deje su comportamiento travieso
Para hacer lo que . . . no has explicado realmente lo que quieres hacer . . a pesar de que se te han hecho preguntas específicas . . si ignoras las preguntas que se hacen para que te ayuden entonces serás ignorado muy rápidamente.
turbo o no turbo
turbo o no turbo
Bueno como parece que lo quieres lo más sencillo posible ya que eres un novato he buscado lo más fácil de entender.
Bueno como parece que lo quieres lo más simple posible ya que eres un novato busqué lo más fácil de entender.
Bueno como parece que lo quieres lo más sencillo posible ya que eres un novato he buscado lo más fácil de entender.
¡Bingo! Tonny esto es exactamente lo que quería que funciona en el probador de la estrategia y auto incrementa el tamaño del lote de mantener el porcentaje. Es mejor que mi anterior con innumerables sentencias if, ¡muchas gracias a todos! :-)
Lo siento tonny el tamaño del lote debe estar entre minlot y maxlot Y un múltiplo de lotStep.
Estimado WHRoeder, por favor, no desorientar a la gente dando códigos que sólo tienen un montón de errores en ella, no se ha definido ls objeto en el código y le está dando a alguien a usarlo, por favor, deje su comportamiento travieso
Bueno como parece que lo quieres lo más sencillo posible ya que eres un novato busqué lo más fácil de entender.
tonny muchas gracias por el código que diste, realmente funcionó muy bien
lo he encontrado desde hace 2 días e incluso he discutido con mi mujer sobre ello.
gracias