초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 837

 
Aleksey Vyazmikin :

당신은 역사 전체에 걸쳐 보충을 찾고 있습니까? 자기자본 축소에 대해, 이것이 나에게 적용되는 방식입니다.

사람은 모든 것을 닫을 필요가 없으며 역사에서 아무 것도 찾을 필요가 없다고 그는 썼습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문 MQL5 MT5 MetaTrader 5

데니스 퍼신 , 2018.03.22 21:13

잔액이 10% 증가하면 500이 보충되며 현재 감소가 5% 이하인 경우 이 10%를 철회합니다. 이러한 입력 데이터는 함수에 포함되어 있어 게인과 드로다운을 정확히 계산할 수 없습니다.

글쎄, 메시지에서 분명한 것처럼 추적 중:

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

테스터 출금

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

사람은 모든 것을 닫을 필요가 없으며 역사에서 아무 것도 찾을 필요가 없다고 그는 썼습니다.

글쎄, 메시지에서 분명한 것처럼 추적 중:

테스터 출금

이전에 거래를 중단 한 사람이 실생활에서 인출 결정을 내려야한다고 생각했습니다 ...

글쎄, 나는 내가 원하는 것을 이해하지 못했습니다.

 
Aleksey Vyazmikin :


맞아요, 테스트할 때 대차대조표에 한 금액을 유지하고 이익을 제거해야 하며 로봇은 재투자하지 않고 마틴게일 그리드와 거래하므로 시장에서 지속적으로 열린 거래가 있습니다.

 
Denis Pershin :

맞아요, 테스트할 때 대차대조표에 한 금액을 유지하고 이익을 제거해야 하며 로봇은 재투자하지 않고 마틴게일 그리드와 거래하므로 시장에서 지속적으로 열린 거래가 있습니다.

글쎄요, 어쨌든 논리는 바뀌지 않습니다. 초기 잔액을 기억하고 게인과 드로다운을 모니터링한 다음 제거합니다... 코드로 뭔가 필요한가요?

 
Aleksey Vyazmikin :

어렵지 않다면 코드를 추가하는 데 도움을 주세요.

 // 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 :

어렵지 않다면 코드를 추가하는 데 도움을 주세요.

자기자본이 아닌 자유 마진을 고려해야 합니다!

인출을 통해 잔액에서 이익을 인출할 수 있지만 동시에 큰 마진이 수반되고 인출 후 인출이 귀하의 5% 이상이 되는 상황이 있을 수 있습니다.

지금은 코드의 수식에 대해 도움을 주지 않겠습니다. 다른 사람이 연결하여 코드를 작성할 수도 있습니다. 여기에서는 길지 않지만 조금 생각해야 합니다)
 
Denis Pershin :

어렵지 않다면 코드를 추가하는 데 도움을 주세요.

이해가 되지 않습니다... 잔액에서 자금 비율을 계산하는 공식이 필요합니까?

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

어렵지 않다면 코드를 추가하는 데 도움을 주세요.

여기 있습니다. 논리는 내가 제안한 것입니다. 문제가 있으면 수정하겠습니다.

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


감사합니다, 당신이 필요로하는 것)
 
Nilog :

ex5에만 인디케이터 파일이 있습니다.

iCustom 기능을 사용하여 다중 시간 프레임 표시기로 전환할 수 있습니까? 글쎄, 그는 다른 기간의 ex5에서 값을 가져와 현재 차트에 그립니다.

할 수 있다.

사유: