Pyramiding (skalowanie pozycji)

14. Pyramiding (skalowanie pozycji)

Inp_Pyramid_Multiplier      = 3.0   // Mnożnik (sonda → główna)
Inp_Pyramid_Max_Lots        = 2.0   // Twardy limit lotów na pozycję
Inp_Pyramid_OnlyProfitable  = true  // Piramiduj tylko gdy ostatnia pozycja na +

Logika:

  • Brak pozycji: lots = target_lots / 3.0 — otwierana mała sonda (1/3 normalnej)
  • Jest pozycja: lots = last_volume × 3.0 — skalowanie do pełnej wielkości
  • Jeśli OnlyProfitable=true i ostatnia pozycja na minusie → piramida zablokowana

Log: "Pyramid blocked: last position not in profit." / "LOT CAP: 4.50 -> 2.00"

Filtr Tygodniowy i Fibonacci (Anti-Crash)

12. Filtr Tygodniowy i Fibonacci (Anti-Crash)

Weekly Filter

Inp_WeeklyFilter_Enable = true
Inp_WeeklyFilter_TF = PERIOD_W1

Blokuje handel gdy aktualna cena jest poniżej minimun poprzedniego tygodnia na W1. Chroni przed handlem w strukturalnym niedźwiedzim trendzie i potencjalnych krachach.

Fibonacci Extension Filter

Inp_FiboFilter_Enable = true
Inp_Fibo_TF = PERIOD_D1

Blokuje zlecenia przy ekstremalnych poziomach rozszerzeń Fibonacciego na D1. Zapobiega wchodzeniu na przegrzanym rynku daleko od wartości fundamentalnej.

News Filter

11. News Filter

Integracja z zewnętrznym kalendarzem ekonomicznym dla ochrony przed newsami wysokiego wpływu:

Inp_News_Filter_Enable = true         // Włącza filtr
Inp_News_Mins_Before  = 30            // Zamrożenie 30 min przed newsem
Inp_News_Mins_After   = 12            // Zamrożenie 12 min po newsie
Inp_News_Block_High   = true          // Blokuj newsy o wysokim wpływie (czerwone)
Inp_News_Block_Mid    = true          // Blokuj newsy o średnim wpływie (pomarańczowe)

Gdy aktywny filtr newsów → żadne nowe zlecenia nie są otwierane. Istniejące pozycje są normalnie zarządzane.

Harmonogram i EOD Terminator

10. Harmonogram i EOD Terminator

Harmonogram sesji (lokalny czas terminala)

Każdy dzień tygodnia ma własne okno handlowe:

Poniedziałek:  Inp_Hours_Monday    = "00:00-22:00"
Wtorek:        Inp_Hours_Tuesday   = "00:00-22:00"
Środa:         Inp_Hours_Wednesday = "00:00-22:00"
Czwartek:      Inp_Hours_Thursday  = "00:00-22:00"
Piątek:        Inp_Hours_Friday    = "00:00-05:00"  // wcześniejsze zakończenie

Format: "HH:MM-HH:MM" — można wpisać wiele przedziałów oddzielonych przecinkiem np. "09:00-12:00,15:00-20:00". Sobota i niedziela automatycznie zablokowane.

EOD Terminator

Mechanizm awaryjnego zamknięcia wszystkich pozycji o określonej godzinie:

Piątek:        Inp_EOD_Time_Friday     = "21:39"
Inne dni:      Inp_EOD_Time_OtherDays  = "22:29"

Algorytm z retry:

  1. Próbuje zamknąć wszystkie pozycje na symbolu
  2. Jeśli broker odrzuci zlecenie → czeka 5 sekund → ponawia (max 10 prób)
  3. Po sukcesie: g_Last_EOD_Day = dt.day_of_year (nie powtarza tego samego dnia)

Log: "EOD TERMINATOR: Emergency closing all positions..." → "EOD SUCCESS: Closed position #123." → "EOD TERMINATOR: Chart cleared. Goodnight."

Zarządzanie pozycjami — warstwy ochrony

7. Zarządzanie pozycjami — warstwy ochrony

ManagePositions() wykonuje się na KAŻDYM ticku dla każdej otwartej pozycji. Warstwy ochrony są stosowane w ściśle określonej kolejności priorytetów.

Warstwa 0: Virtual Stop Loss (najwyższy priorytet — awaryjne cięcie)

Nie jest to SL wysłany do brokera — to wewnętrzna kontrola poziomu straty:

active_cap = base_capital (zależnie od trybu)
pos_profit = zysk + swap + prowizja
max_loss = active_cap × Inp_Virtual_SL_Percent / 100

Jeśli |pos_profit| >= max_loss → natychmiastowe zamknięcie pozycji

Log: "VIRTUAL SL HIT! Position #123 loss (-45.23) exceeded 4.00% of Active Capital (1132.50). Closing immediately."

To zabezpieczenie działa jako ostatnia linia obrony przed katastroficzną stratą, niezależnie od spreadu, poślizgu czy warunków brokera.

Warstwa 0.5: Profit Lock (agresywne trailing bliskie TP)

Aktywuje się gdy cena zbliży się do TP na odległość Inp_E_PL_Trigger_Points (500 pkt):

  • Włącza agresywny trailing SL oparty o Inp_E_PL_TSL_Points (200 pkt) od aktualnej ceny
  • SL przesuwa się tylko w kierunku zysku (ratchet — nigdy wstecz)
  • Chroni wypracowany zysk tuż przed osiągnięciem TP

Log: "Position #123: PROFIT LOCK Activated!"

Warstwa 1: Physical TSL BB (Bollinger Band Trailing SL)

Dwufazowy mechanizm:

  • Faza 1: Standard Hard SL wysłany do brokera przy otwarciu
  • Faza 2: Aktywuje się gdy profit_in_points >= Inp_E_ProfitToActivateBB (1500 pkt)

Po wejściu w Fazę 2:

  • BUY: SL = MAX(BB_Lower, open_price + floor_dist) — podąża za dolnym pasmem BB (nigdy poniżej otwarcia + podłoga)
  • SELL: SL = MIN(BB_Upper, open_price - floor_dist) — podąża za górnym pasmem BB

BB TSL ma wyższy priorytet niż Hard BE — gdy Faza 2 aktywna, Hard BE jest ignorowane.

Log: "Position #123 entered Phase 2 (TSL BB)."

Warstwa 2: Hard Break-Even (klasyczny BE)

Przenosi fizyczny SL do (lub powyżej) ceny otwarcia gdy zysk osiągnie Inp_HardBE_Trigger_Points (200 pkt):

BUY: new_SL = open_price + (Inp_HardBE_Level_Points × _Point)  // np. +100 pkt
SELL: new_SL = open_price - (Inp_HardBE_Level_Points × _Point)

SL jest przesuwany tylko w kierunku zysku. Po jednorazowej aktywacji flaga is_breakeven1_set = true — Hard BE nie jest powtarzany.

Log: "Position #123: Hard Break-Even set at +100 pts."

Warstwa 3: Virtual Negative Break-Even

Innowacyjny mechanizm pozwalający pozycji „oddychać” po osiągnięciu pewnego zysku:

  1. Po osiągnięciu Inp_NegBE_Trigger_Points (5000 pkt) zysku → aktywuje się is_breakeven2_set = true
  2. Jeśli pozycja cofnie się do poziomu Inp_NegBE_Level_Points (np. -3000 pkt) → pozycja jest zamykana
  3. Działa wyłącznie gdy Hard BE NIE jest jeszcze ustawiony

Sens: pozycja osiągnęła duży zysk (5000 pkt), system „pozwala” jej wrócić do -3000 pkt zanim ją zatnie. Drastycznie zmniejsza liczbę przedwcześnie zamkniętych trendów.

Log: "Position #123: Virtual Negative BE Activated." → "Position #123: Closed by Virtual Negative BE."

Dynamic Take Profit (rozszerzanie TP przy silnym trendzie)

Gdy cena zbliży się do TP na Inp_E_PL_Trigger_Points:

  1. Sprawdza BB (z osobnym szerszym odchyleniem Inp_E_BB_TP_Deviation = 3.0)
  2. Jeśli cena przebija zewnętrzne pasmo BB (silny trend!) → TP jest przesuwany dalej o Inp_E_TP_Extension_Points (500 pkt)
  3. Można wielokrotnie rozszerzać — bez limitu liczby rozszerzeń

Log: "Position #123: Dynamic TP Extended by 500 points!"

Dynamic Channel (Box Trading) — tunel ceny

6. Dynamic Channel (Box Trading) — tunel ceny

Ogranicza strefę handlu do dynamicznie wyznaczonego korytarza cenowego.

Standardowy Box (długoterminowy)

Aktualizowany co Inp_Channel_Update_Hours godzin (domyślnie 6h):

  1. Zapamiętuje aktualną cenę BID jako base_price
  2. g_Channel_Upper = base_price + Channel_Points_Up × _Point
  3. g_Channel_Lower = base_price - Channel_Points_Down × _Point
  4. Handel dozwolony tylko gdy cena mieści się w kanale

Domyślne ustawienia: Upper +20000 pkt, Lower -5000 pkt — asymetryczny kanał zakłada większy potencjał wzrostowy.

Log: "NEW STANDARD PRICE CHANNEL: Base: 2100.50 | Upper: 2300.50 | Lower: 2050.50"

Manualny Box (Anti-Crash Protection)

Inp_ManualBox_Enable = true pozwala ręcznie ustawić granice absolutne cenami:

  • Inp_ManualBox_Upper — górna granica (cena)
  • Inp_ManualBox_Lower — dolna granica (cena)

Użycie: trader może ręcznie wyznaczyć tunel przed ważnym eventem fundamentalnym lub przy handlu w określonym reżimie rynkowym.

Priorytet kanałów (IsPriceInChannel)

1. Muzzle Box (aktywny podczas Impulse) — PRIORYTET
2. Manual Box (jeśli Inp_ManualBox_Enable=true)
3. Standard Dynamic Channel (jeśli Inp_Channel_Enable=true)

Status wyświetlany na panelu jako g_Status_Channel.

Institutional Impulse + Muzzle Mode

5. Institutional Impulse + Muzzle Mode

Jeden z kluczowych mechanizmów. Wykrywa instytucjonalne impulsy (nagłe, gwałtowne ruchy generowane przez duży kapitał) i natychmiast zmienia charakterystykę systemu.

Wykrywanie impulsu

Na każdym nowym barze na Inp_Impulse_TF (domyślnie M1):

  1. Oblicza średni zasięg i średni wolumen z ostatnich Inp_Impulse_AvgPeriod (20) świec
  2. Pobiera ATR
  3. Oblicza velocity = |current_close - prev_close| / prev_close
  4. Impuls wykryty jeśli zasięg świecy > Inp_Impulse_Min_Range_Points (50 pkt) ORAZ spełniony przynajmniej jeden z warunków:
  • velocity > Inp_Impulse_Velocity (0.5% zmiany ceny)
  • current_range > RangeMult × avg_range (2× średniej)
  • current_range > ATRMult × ATR (2× ATR)
  • current_volume > VolMult × avg_volume (1.5× średniego wolumenu)

Log: "Institutional Impulse Detected! Activating MUZZLE MODE for 15 mins."

Muzzle Mode — jak zmienia się charakterystyka systemu

Po wykryciu impulsu system wchodzi w Muzzle Mode (tryb wyciszenia):

ParametrNormalny trybPodczas Impulsu (Muzzle Mode)
Min. ciało świecy Smart DI2 pkt150 pkt
Poziom blokady CCIInp_Block_CCI_Level (350)Inp_Muzzle_CCI_Block_Level (130)
Sygnały SELLDozwoloneBlokowane jeśli Channel_Down=0
Kanał cenowyStandardowyMuzzle Box (anchor w momencie impulsu)

Kluczowe: Gdy Inp_Muzzle_Channel_Points_Down = 0, podczas impulsu system działa wyłącznie jako BUY ONLY — sprzedaż jest całkowicie blokowana. Pozwala to uchwycić trend po biciu.

Dynamiczny Muzzle Channel

W momencie wykrycia impulsu system zapamiętuje aktualną cenę BID (g_Muzzle_BasePrice). Wszystkie kolejne sygnały muszą mieścić się w:

  • Upper: base_price + Muzzle_Channel_Points_Up
  • Lower: base_price - Muzzle_Channel_Points_Down (lub -DBL_MAX gdy Down=0)

Wygaszenie Muzzle Mode

Muzzle Mode wygasa gdy spełnione są WSZYSTKIE warunki:

  1. Upłynął cooldown: (czas_teraz - czas_impulsu) > Impulse_Cooldown_Mins × 60
  2. Rynek się uspokoił: current_range ≤ 1.5 × avg_range AND current_volume ≤ 1.5 × avg_vol
  3. Ukształtował się szczyt lub dołek: poprzednia świeca wyższy high (peak) lub niższy low (trough) niż sąsiednie

Log: "Market calmed down. MUZZLE MODE deactivated."

Adaptive Hybrid System - Multi-Core Strategy Engine -US100
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.