Creando mi primer EA. Cambiar lote segun capitalBuenas gente.
Soy algo novato en este mundillo (1 año) y recientemente me estoy metiendo de lleno en esto de hacer EAs. El caso es que ya he elaborado mi EA. Entra y sale del mercado cuando deseo. Lo que me gustaria hacer ahora es que duplicase la cantidad del lotaje cuando se duplique la cantidad del dinero en la cuenta. POr ejemplo: Empiezo con 500€ y 0.02 de lotaje.......cuando llegue a 1000€ quiero que el lotaje pase a 0.04 y asi sucesivamente. En el caso de que perdiera y volviera a tener 500€ o menos pues meter el lotaje correspondiente a ese nivel, en este caso 0.02 Y no tengo mucha idea de como hacerlo. No pido que me escribais el codigo ehhh(aunque estaria bien, jajaja). Estoy aprendiendo a programar, tan solo que me digais que tipo de ordenes tengo que usar u alguna otra ayuda Os dejo el backtesting que le he hecho a la estrategia. Me gustaria leer vuestra opinion (todo lo que sirva para mejorar) Gracias por vuestro tiempo y Saludos
Re: Creando mi primer EA. Cambiar lote segun capitalExplica eso un poco. Tienes una EA ya programada que te lanza ordenes y kieres que estos se dupliquen cuando llegues a 1000€? Y se pongan a la mitad cuando llegues otra vez a 500€?
Re: Creando mi primer EA. Cambiar lote segun capitalHola Hijodelacondesa, primero de todo agradecerte el interes. A ver si me puedo explicar con mas claridad...
VAmos a imaginar que parto con un balance de 1000 € y que mi lote inicial en la estrategia es con 0,1. Según va trabajando el EA y llega a un balance de 2000 €, automaticamente la siguiente inversion la hara a 0,2 lotes Si sigue bien la cosa y el balance se vuelve a duplicar, es decir, que llegue a 4000 € que el lotaje pase a ser de 0,4. Si por lo que sea el balance bajase en este caso a 2000 € , que el lote cambie de nuevo a 0,2 y si continua bajando hasta los 1000€ en el balance que pase al lotaje inicial de 0,1 Con el tiempo que he podido investigar. he llegado a leer un articulo https://www.mql5.com/es/articles/3280 y he visto que lo que mas se acerca a mi money management es lo que llaman proporcion fija. Dejo a continuacion unas lineas de codigo: bool CMoneyFixedRatioBase::UpdateLotSize(const string symbol,const double price,const ENUM_ORDER_TYPE type,const double sl=0) { m_symbol=m_symbol_man.Get(symbol); double last_volume=m_volume; if(CheckPointer(m_symbol)) { double balance=m_equity==false?m_account.Balance():m_account.Equity(); m_volume=m_volume_base+((int)(balance/m_balance_inc))*m_volume_inc; m_balance=balance; } return NormalizeDouble(last_volume-m_volume,2)==0; } Por cierto, no lo comente antes, pero mi idea era escribirlo en mql4 y este esta en mql5 ( o eso creo). No se si estas lineas de codigo me servirian... Gracias de nuevo por vuestro tiempo y saludos
Re: Creando mi primer EA. Cambiar lote segun capitalhaz pruebas con alguna de las 2
double miLotaje( double LoteFijo, double CapitalBase, double nRisk ) { double LotMin = MarketInfo(Symbol(), MODE_MINLOT); double LotMax = MarketInfo(Symbol(), MODE_MAXLOT); double capBase = CapitalBase/nRisk; double nroLotes = MathFloor( AccountFreeMargin()/capBase ); return NormalizeDouble( MathMin( LotMax, MathMax( nroLotes*LotMin, LotMin)), Digits ); } ------------------------------------------------------------------------------------------- double GetLotSize(double lotFijo, double risk) { if (risk > 0.0) { double LotMin = MarketInfo(Symbol(), MODE_MINLOT ); double LotMax = MarketInfo(Symbol(), MODE_MAXLOT ); double LotStep = MarketInfo(Symbol(), MODE_LOTSTEP); double LotSize = MarketInfo(Symbol(), MODE_LOTSIZE); double lote = MathFloor( 0.5+ MathMin(100, risk) / 100.0 * AccountFreeMargin() / LotStep / (LotSize / 100) ) * LotStep; return( MathMax( LotMin, MathMin(LotMax, lote) ) ); } else return(lotFijo); }
Re: Creando mi primer EA. Cambiar lote segun capitalCreo que eso que habéis puesto va más orientado a gestión de capital.
Mira esto...https://docs.mql4.com/account/accountbalance double balance=AccountBalance();// obtenemos valor de la cuenta int n=500;//Queremos que el cambio de lote sea cada 500€ int i=balance/n;//Se utiliza una variable int para quitar la mantisa y que quede un número entero double numero_lote=0.1;//Suponiendo que trabajamos con minilotes Int OrderSend(Symbol(), OP_BUY, numero_lote*ir,Ask, 3, stoploss, profit);//Se lanza la orden Una cosa así.
Re: Creando mi primer EA. Cambiar lote segun capitalentiendo que
por cada 1000-1999 libres en la cuenta tendra que usar 0.1 lotes. si tienes 2000 -2999 usara 0.2 3000-3999 usa 0.3 en cuyo caso invocaras tamLote = miLotaje( 0.1, 1000, 1 ); suerte
Re: Creando mi primer EA. Cambiar lote segun capitalVale Nightmare y Hijodelacondesa, con esto tengo para entretenerme para este finde
Aprovechare para mirarme los distintos codigos que habeis puesto y asi ver las distintas ordenes y la funcion que tienen. Ya os ire comentando mis avances jeje. Por cierto, que opinais del backtesting que hice? Saludos gente y gracias
Re: Creando mi primer EA. Cambiar lote segun capitalPara que mi script funciones hay que sumarle 1 a i
9 mensajes
• Página 1 de 2 • 1, 2
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados