Libraries: PropFirm Defense

PropFirm Defense:

A library of 24 MQL5 classes that watches a prop-firm rulebook -- drawdown, daily loss, payout consistency, minimum trading days, news blackout -- against any account, and flattens on breach without ever opening a position of its own.

PropFirm Defense

Author: Bruno Nunes Myrrha Ribeiro

Automated-Trading:

PropFirm Defense:

Author: Bruno Nunes Myrrha Ribeiro

Hi guys how to join 

Hi Buddy, I like the effort that you are putting in and giving it away for free. I tried to test the tool; everything went well. I am not able to complile of the source file name  CPropDashboardPanel.mqh  

I am attaching the log of those errors; can you look into these errors?

 

CPropDashboardPanel.mqh

declaration without type CPropDashboardPanel.mqh 103 30

comma expected CPropDashboardPanel.mqh 103 49

declaration without type CPropDashboardPanel.mqh 115 31

comma expected CPropDashboardPanel.mqh 115 51

declaration without type CPropDashboardPanel.mqh 250 16

comma expected CPropDashboardPanel.mqh 250 30

undeclared identifier 'sev' CPropDashboardPanel.mqh 105 14

'sev' - illegal switch expression type CPropDashboardPanel.mqh 105 14

undeclared identifier 'PROP_SEV_BREACH' CPropDashboardPanel.mqh 107 15

'PROP_SEV_BREACH' - constant expression is not integral CPropDashboardPanel.mqh 107 15

undeclared identifier 'PROP_SEV_ADVISORY' CPropDashboardPanel.mqh 108 15

'PROP_SEV_ADVISORY' - constant expression is not integral CPropDashboardPanel.mqh 108 15

undeclared identifier 'PROP_SEV_WARNING' CPropDashboardPanel.mqh 109 15

'PROP_SEV_WARNING' - constant expression is not integral CPropDashboardPanel.mqh 109 15

undeclared identifier 'PROP_SEV_INFO' CPropDashboardPanel.mqh 110 15

'PROP_SEV_INFO' - constant expression is not integral CPropDashboardPanel.mqh 110 15

'PROP_SEV_BREACH' - case value already used CPropDashboardPanel.mqh 107 15

   see previous usage CPropDashboardPanel.mqh 108 15

'PROP_SEV_WARNING' - case value already used CPropDashboardPanel.mqh 109 15

   see previous usage CPropDashboardPanel.mqh 107 15

'PROP_SEV_INFO' - case value already used CPropDashboardPanel.mqh 110 15

   see previous usage CPropDashboardPanel.mqh 109 15

undeclared identifier 'dir' CPropDashboardPanel.mqh 117 14

'dir' - illegal switch expression type CPropDashboardPanel.mqh 117 14

undeclared identifier 'PROP_DIRECTIVE_LOCKDOWN' CPropDashboardPanel.mqh 119 15

'PROP_DIRECTIVE_LOCKDOWN' - constant expression is not integral CPropDashboardPanel.mqh 119 15

undeclared identifier 'PROP_DIRECTIVE_FLATTEN' CPropDashboardPanel.mqh 120 15

'PROP_DIRECTIVE_FLATTEN' - constant expression is not integral CPropDashboardPanel.mqh 120 15

undeclared identifier 'PROP_DIRECTIVE_BLOCK_NEW_ENTRIES' CPropDashboardPanel.mqh 121 15

'PROP_DIRECTIVE_BLOCK_NEW_ENTRIE…' - constant expression is not integral CPropDashboardPanel.mqh 121 15

undeclared identifier 'PROP_DIRECTIVE_ADVISORY' CPropDashboardPanel.mqh 122 15

'PROP_DIRECTIVE_ADVISORY' - constant expression is not integral CPropDashboardPanel.mqh 122 15

'PROP_DIRECTIVE_LOCKDOWN' - case value already used CPropDashboardPanel.mqh 119 15

   see previous usage CPropDashboardPanel.mqh 120 15

'PROP_DIRECTIVE_BLOCK_NEW_ENTRIE…' - case value already used CPropDashboardPanel.mqh 121 15

   see previous usage CPropDashboardPanel.mqh 119 15

'PROP_DIRECTIVE_ADVISORY' - case value already used CPropDashboardPanel.mqh 122 15

   see previous usage CPropDashboardPanel.mqh 121 15

undeclared identifier 'guard' CPropDashboardPanel.mqh 261 10

undeclared identifier 'ENUM_PROP_DIRECTIVE' CPropDashboardPanel.mqh 268 10

undeclared identifier 'dir' CPropDashboardPanel.mqh 268 30

'dir' - some operator expected CPropDashboardPanel.mqh 268 30

undeclared identifier 'guard' CPropDashboardPanel.mqh 268 38

undeclared identifier 'dir' CPropDashboardPanel.mqh 269 53

undeclared identifier 'PropDirectiveName' CPropDashboardPanel.mqh 271 56

undeclared identifier 'dir' CPropDashboardPanel.mqh 271 74

'dir' - some operator expected CPropDashboardPanel.mqh 271 74

undeclared identifier 'ENUM_PROP_RULE' CPropDashboardPanel.mqh 274 7

undeclared identifier 'rules' CPropDashboardPanel.mqh 274 22

'rules' - some operator expected CPropDashboardPanel.mqh 274 22

']' - unexpected token CPropDashboardPanel.mqh 274 29

expression has no effect CPropDashboardPanel.mqh 274 28

'=' - operand expected CPropDashboardPanel.mqh 274 31

undeclared identifier 'PROP_RULE_STATIC_DD' CPropDashboardPanel.mqh 276 10

undeclared identifier 'PROP_RULE_TRAILING_DD' CPropDashboardPanel.mqh 276 31

undeclared identifier 'PROP_RULE_DAILY_LOSS' CPropDashboardPanel.mqh 276 54

undeclared identifier 'PROP_RULE_PROFIT_TARGET' CPropDashboardPanel.mqh 277 10

undeclared identifier 'PROP_RULE_CONSISTENCY' CPropDashboardPanel.mqh 277 35

undeclared identifier 'PROP_RULE_MIN_TRADING_DAYS' CPropDashboardPanel.mqh 277 58

undeclared identifier 'PROP_RULE_NEWS_WINDOW' CPropDashboardPanel.mqh 278 10

undeclared identifier 'PROP_RULE_WEEKEND_FLAT' CPropDashboardPanel.mqh 278 33

undeclared identifier 'PropRuleVerdict' CPropDashboardPanel.mqh 283 10

undeclared identifier 'v' CPropDashboardPanel.mqh 283 26

'v' - some operator expected CPropDashboardPanel.mqh 283 26

undeclared identifier 'guard' CPropDashboardPanel.mqh 283 30

undeclared identifier 'PropRuleName' CPropDashboardPanel.mqh 284 33

undeclared identifier 'rules' CPropDashboardPanel.mqh 284 46

'[' - array required CPropDashboardPanel.mqh 284 51

'rules' - some operator expected CPropDashboardPanel.mqh 284 46

undeclared identifier 'v' CPropDashboardPanel.mqh 289 14

';' - unexpected token CPropDashboardPanel.mqh 291 34

'!' - l-value required CPropDashboardPanel.mqh 289 13

cannot implicitly convert type 'string' to 'bool' CPropDashboardPanel.mqh 291 27

l-value required CPropDashboardPanel.mqh 291 20

'(' - unbalanced left parenthesis CPropDashboardPanel.mqh 289 12

empty controlled statement found CPropDashboardPanel.mqh 291 34

variable 'line' not used CPropDashboardPanel.mqh 285 17

illegal 'else' without matching 'if' CPropDashboardPanel.mqh 295 10

69 errors, 3 warnings 69 3


Thanks for the detailed log - that is what made it easy to find. You are right, and the fault is mine: CPropDashboardPanel.mqh was missing its own #include, so it only compiled when another file had already pulled in the types it uses. On its own it fails exactly as you saw.

It is fixed - one include line at the top - and the updated file is already in the CodeBase entry. I also checked every other file in the package the same way you did, compiling each one on its own; the rest were fine.

Thanks again for taking the time to test it and to send the log.