Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 837

 
Aleksey Vyazmikin:

¿Está usted en la historia completa buscando reabastecimiento? Acerca de la reducción de la equidad, así es como funciona para mí

El hombre no necesita cerrar todo, no necesita buscar nada en la historia, escribió:

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Preguntas de los principiantes MQL5 MT5 MetaTrader 5

Denis Pershin, 2018.03.22 21:13

He depositado 500, si el saldo ha aumentado en un 10%, entonces retire este 10%, siempre que la detracción actual no sea superior al 5%. Estas entradas están en la función, no funciona para calcular exactamente el crecimiento y la reducción.

Y a continuación, como se desprende del mensaje:

if(_ldd < _dd) TesterWithdrawal(_dep-_bal); // Снимаем: нач.депозит - баланс }

TesterWithdrawal

Документация по MQL5: Общие функции / TesterWithdrawal
Документация по MQL5: Общие функции / TesterWithdrawal
  • www.mql5.com
Общие функции / TesterWithdrawal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

El hombre no necesita cerrar todo, no necesita buscar nada en la historia, escribió:

Bueno, como seguimiento de lo claro que es el mensaje:

TesterWithdrawal

Pensé que el hombre tiene que tomar una decisión sobre la retirada en el real, después de haber detenido el comercio...

Pues no entendía lo que quería.

 
Aleksey Vyazmikin:


Así es, tengo que mantener una cantidad en el balance durante la prueba, retirar el aumento, el robot es sin reinversión, y los oficios de una cuadrícula en una base de martingala, por lo que hay constantemente las operaciones abiertas en el mercado

 
Denis Pershin:

Muy bien, necesito mantener una cantidad en el balance durante las pruebas, retirar el incremento, el robot no tiene reinversión, y negocia una cuadrícula en martingala, por lo que hay constantemente operaciones abiertas en el mercado

Bueno, en cualquier caso, la lógica no cambia, recordar el saldo inicial y vigilar el crecimiento y la reducción, luego retirar... ¿necesita algo sobre el código?

 
Aleksey Vyazmikin:

Si puedes ayudarme, por favor ayúdame con el código:

// dep=нач.депозит, growth=прирост %, _dd=допустимая просадка %
void Withdraw(double _dep=500, double _growth=10, double _dd=5) {
  double _bal=AccountInfoDouble(ACCOUNT_BALANCE);
  double _eq=AccountInfoDouble(ACCOUNT_EQUITY);
  double _ldd="что сюда?";
  
   if(_ldd < _dd) TesterWithdrawal(_bal-dep); // Снимаем: баланс - нач.депозит
 }
 
Denis Pershin:

Si no te importa, ayúdame con el código:

Hay que tener en cuenta el margen libre, no los fondos propios.

Puede darse la situación de que la reducción de la deuda le permita retirar un beneficio del saldo, pero hay un gran margen de por medio, y después de la retirada la reducción será mayor que su 5%.

No puedo ayudarte con las fórmulas en el código ahora mismo, tal vez alguien más se conecte y te escriba un código, no es largo, pero necesita un poco de pensamiento)
 
Denis Pershin:

Si no te importa, ayúdame a completar el código:

No entiendo... ¿Necesita una fórmula para calcular el porcentaje de fondos del saldo?

_ldd=100-_eq/_bal*100;
 
Denis Pershin:

Si no te importa, ayúdame a terminar el código:

Aquí tienes. La lógica es la que yo sugerí, y si algo está mal, lo arreglaremos:

//===============================================================================================
//--------------------------------- Снимает прибыль в тестере ----------------------------------+
//===============================================================================================
void Withdraw(double _dep=500, double _growth=10, double _dd=5) {
 double _now_bal=0,_now_mg=0,_now_pr=0,_surplus=0,_GR=0,_DR=0;
 _now_bal= AccountInfoDouble(ACCOUNT_BALANCE);
 _now_mg = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
 _now_pr = _now_bal-_dep; // Сумма к снятию
 _surplus= _now_mg-_now_pr; // Считаем остаток после снятия
 _GR = (_now_bal-_dep)/_dep*100; // Прирост %
 _DR = (_surplus-_dep)/_dep*100; // Просадка %
 //Comment(DTS(_GR,2)," = ",DTS(_DR,2));
  if(_GR>_growth && _DR<_dd) TesterWithdrawal(_now_pr); // Снимаем
 }
 
Vitaly Muzichenko:


Gracias, justo lo que necesitaba)
 
Nilog:

Sólo hay un archivo indicador en ex5.

¿Puedo utilizar la función iCustom para convertirlo en un indicador multitemporal? ¿Así que toma los valores de ex5 de otros períodos y los dibuja en el gráfico actual?

Es posible.

Razón de la queja: