Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 837

 
Aleksey Vyazmikin:

Está em toda a história à procura de reabastecimento? Sobre o levantamento de capital, é assim que funciona para mim

O homem não precisa de fechar tudo, ele não precisa de procurar nada na história, escreveu ele:

Fórum sobre comércio, sistemas comerciais automatizados e teste de estratégias comerciais

Perguntas de principiantes MQL5 MT5 MetaTrader 5

Denis Pershin, 2018.03.22 21:13

Depositei 500, se o saldo tiver aumentado 10%, então retire estes 10%, desde que o levantamento actual não seja superior a 5%. Estes inputs estão na função, não funciona para calcular exactamente o crescimento e o drawdown.

E depois disso, como se depreende da mensagem:

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

TesterWithdrawal

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

O homem não precisa de fechar tudo, ele não precisa de procurar nada na história, escreveu ele:

Bem, como seguimento de quão clara é a mensagem:

TesterWithdrawal

Pensei que o homem precisava de tomar uma decisão de retirada sobre o real, tendo previamente parado o comércio...

Bem, não compreendeu o que queria.

 
Aleksey Vyazmikin:


Isso mesmo, preciso de manter um montante em equilíbrio durante os testes, retirar o aumento, o robô está sem reinvestimento, e negoceia uma grelha numa base de martingale, de modo a que haja constantemente negócios abertos no mercado

 
Denis Pershin:

Muito bem, preciso de manter um montante em equilíbrio durante os testes, retirar o incremento, o robô não tem reinvestimento, e negoceia uma grelha em martingale, de modo a que haja constantemente trocas abertas no mercado

Bem, em qualquer caso, a lógica não muda, lembre-se do equilíbrio inicial e controle o crescimento e a retirada... precisa de alguma coisa sobre o código?

 
Aleksey Vyazmikin:

Se me puder ajudar, por favor, ajude-me com o 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:

Se não se importa, ajude-me com o código:

É preciso ter em conta a margem livre, não a equidade!

Poderá ter uma situação em que o saque lhe permite retirar um lucro do saldo, mas há uma grande margem envolvida, e após o saque o saque será maior do que os seus 5%.

Não o posso ajudar com fórmulas no código neste momento, talvez outra pessoa lhe ligue e lhe escreva um código, não é longo, mas precisa de pensar um pouco)
 
Denis Pershin:

Se não se importa, ajude-me a completar o código:

Eu não entendo... Precisa de uma fórmula para calcular a percentagem de fundos a partir do saldo?

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

Se não se importa, ajude-me a terminar o código:

Aqui está. A lógica é a que sugeri, e se alguma coisa estiver errada, nós vamos corrigi-la:

//===============================================================================================
//--------------------------------- Снимает прибыль в тестере ----------------------------------+
//===============================================================================================
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:


Obrigado, exactamente o que eu precisava)
 
Nilog:

Existe um ficheiro indicador apenas no ex5.

Posso utilizar a função iCustom para a transformar num indicador multitemporal? Então, retira valores de ex5 de outros períodos e desenha-os no gráfico actual?

É possível.