13. Zarządzanie kapitałem i wielkością pozycji
Tryby kapitału (ENUM_CAPITAL_MODE)
| Tryb | Opis |
|---|---|
CAPITAL_COMPOUND_AUTO | Baza = saldo konta (auto) |
CAPITAL_FIXED_MANUAL | Baza = Inp_Fixed_Capital_Amount (stała) |
CAPITAL_COMPOUND_AUTO + Inp_Compound_Enable=true | Baza = Fixed + g_CompoundBuffer (plik TXT) |
Algorytm kalkulacji wielkości pozycji (CalculatePositionSize)
1. base_capital = [zależnie od trybu]
2. budget = base_capital × MaxTotalMarginPercent / 100
3. risk_money = budget × Risk_Percent_Per_Trade / 100
4. sl_ticks = (Hard_SL_Points × _Point) / tick_size
5. loss_for_one_lot = sl_ticks × tick_value
6. target_lots = risk_money / loss_for_one_lot
→ Pierwsza pozycja: target_lots / Pyramid_Multiplier (sonda, mniejsza)
→ Kolejna pozycja: last_volume × Pyramid_Multiplier (główna, większa)
7. Zaokrąglenie do kroku wolumenu brokera
8. Wymuszenie min/max wolumenu brokera
9. Sprawdzenie hard cap: Max_Lots
10. Sprawdzenie marginu: OrderCalcMargin → jeśli przekracza budżet → abort
Compound Buffer
g_CompoundBuffer jest odczytywany z zewnętrznego pliku TXT. Pozwala na procentowy przyrost bazy kapitałowej z interwałem: Dziennym / Tygodniowym / Miesięcznym. Umożliwia efekt procentu składanego na zablokowanej bazie bez zmiany ustawień EA.
