-
Notifications
You must be signed in to change notification settings - Fork 19
Moving Average Cloud (MAC)
Een trend-following breakout-strategie gebouwd op een cloud van vier moving averages. De cloud geeft de richting en de sterkte van de trend; de entry is een van drie gebeurtenissen binnen die trend.
Elke trigger heeft een eigen schakelaar, zodat een run ze apart of samen kan meten:
- Breakout — de candle sluit door het laatst bevestigde pivot-niveau, met de cloud in de richting van de trade. Standaard aan.
- Cloud cross — EMA(20) sluit aan de andere kant van EMA(40). Standaard uit.
- Springboard bounce — binnen een lopende trend zakt de prijs naar de snelle lijn en sluit terug erboven (of eronder voor short). Standaard uit.
- Line cross — EMA(40) sluit aan de andere kant van SMA(50). Deze loopt VOOR de cloud cross uit, en is daarmee de enige trigger die vuurt terwijl de cloud nog de andere kant op wijst. Standaard uit.
Een optioneel RSI-filter, een optioneel volume-filter en een optioneel slow-line-filter vragen elk om meer bevestiging, en een optionele exit sluit de positie zodra de cloud tegen haar keert.
Productiestrategie — MAC staat niet achter
#if DEBUGen draait mee in de live scanner.Nog niet gemeten in de emulator. De strategie moet haar plaats nog verdienen op eigen metingen.
| Lijn | Wat het is | Rol |
|---|---|---|
| 1 | EMA(20) op de close | De snelle lijn: een pullback stuitert hierop |
| 2 | EMA(40) op de close | De crossover-partner van de snelle lijn |
| 3 | SMA(50) op de close | Midden van de cloud |
| 4 | SMA(150) op de close | De trage lijn: haar helling bepaalt het trendfilter |
De hoogste en de laagste van die vier vormen de randen van de cloud. Prijs voorbij beide randen is een lopende trend; prijs ertussen is consolidatie.
De vier lengtes horen bij elkaar. Het zijn geen vier losse knoppen: 20, 40, 50 en 150 vormen samen wat deze strategie is. Een van de tests faalt wanneer een standaard verschuift, zodat dat altijd een bewuste keuze is. Een run die een snellere of tragere cloud wil, schaalt alle vier evenredig — de queue doet dat in NX2 (10/20/25/75) en NX3 (50/100/125/375).
De waarden komen uit MacIndicatorExtension, die eenmaal per symbool en interval draait en ze in het plugin-slot van de candle schrijft (MacCandleData). Een candle met beide zijden actief betaalt er maar een keer voor:
- De cloud — de vier moving averages, gelezen uit de gedeelde indicator-registry, zodat een lengte die een andere plugin al heeft aangevraagd niet dubbel wordt berekend.
-
De helling — hoe ver de trage lijn is verschoven over
SlowLineLookbackCandlescandles, als percentage van haar eigen waarde. Rechtstreeks uit de hub-resultaten gelezen. -
De niveaus — pivot-highs en pivot-lows over een venster van
PivotLeftCandles+PivotRightCandles+ 1 candles, bijgehouden in een kleine ringbuffer. Een pivot is pas bevestigd zodra zijn rechterkant-candles erin zijn, dus het niveau dateert altijd van voor de candle die het breekt.
MacBase.IsSignal toetst, goedkoopste test eerst (de meeste candles komen niet voorbij de eerste):
- De cloud wijst in de richting van de trade (snelle EMA boven de tweede EMA voor long).
- De cloud is minstens
MinimumCloudWidthPercentagebreed, gemeten van boven naar onder als percentage van de prijs. - De trage lijn is minstens
MinimumSlowLineSlopePercentageverschoven in de richting van de trade. - De RSI is akkoord, wanneer
UseRsiFilteraanstaat. - Een stap terug naar de vorige candle, gedeeld door alles eronder.
-
De trigger — een van de drie is genoeg:
- Cloud cross: de cloud stond op de vorige candle nog niet aan onze kant.
- Springboard: de candle raakte de snelle lijn en sloot terug aan onze kant, terwijl de vorige candle al aan die kant stond.
- Line cross: de tweede lijn sloot aan onze kant van de derde en stond daar op de vorige candle nog niet. Deze trigger wordt vóór voorwaarde 1 afgehandeld, want hij vuurt juist voordat de cloud draait.
-
Breakout: de close ligt buiten de cloud (wanneer
RequirePriceOutsideCloudaanstaat), er is een niveau niet ouder danPivotMaximumAgeCandles, de close ligt minstensBreakoutBufferPercentagevoorbij het niveau, en de vorige close deed dat niet.
- De cloud is breder dan op de vorige candle, wanneer
RequireCloudWideningaanstaat. - Het volume is minstens
VolumeMultiplierkeer het gemiddelde van deVolumeAverageCandlescandles ervoor, wanneerUseVolumeFilteraanstaat. Laatst, want dit is de enige test die een reeks candles doorloopt.
ExitOnCloudFlip staat standaard uit: de positie wordt overgelaten aan de stop-loss en de take-profit. Aanzetten voegt IsExitSignal toe: de positie vertrekt zodra de cloud gedurende ExitConfirmationCandles gesloten candles tegen haar heeft gestaan. Het is geschreven als een toestand ("de cloud staat tegen ons"), geen gebeurtenis ("hij flipte op deze candle"), zodat een herstart de exit niet verliest.
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 | Cloud wijst omhoog | Snelle EMA boven de tweede EMA |
| 2 | Cloudbreedte | Cloud minstens MinimumCloudWidthPercentage breed |
| 3 | Helling trage lijn | Minstens MinimumSlowLineSlopePercentage omhoog |
| 4 | RSI-filter (optioneel) | RSI >= RsiLongMinimum
|
| 5 | Trigger (een van vier) | Breakout door pivot-niveau, cloud cross, springboard bounce, of line cross |
| 6 | Cloud verbreedt (optioneel) | Breder dan op de vorige candle (RequireCloudWidening) |
| 7 | Volume-filter (optioneel) | Volume >= VolumeMultiplier x gemiddeld volume |
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 | Cloud wijst omlaag | Snelle EMA onder de tweede EMA |
| 2 | Cloudbreedte | Cloud minstens MinimumCloudWidthPercentage breed |
| 3 | Helling trage lijn | Minstens MinimumSlowLineSlopePercentage omlaag |
| 4 | RSI-filter (optioneel) | RSI <= RsiShortMaximum
|
| 5 | Trigger (een van vier) | Breakout door pivot-niveau, cloud cross, springboard bounce, of line cross |
| 6 | Cloud verbreedt (optioneel) | Breder dan op de vorige candle (RequireCloudWidening) |
| 7 | Volume-filter (optioneel) | Volume >= VolumeMultiplier x gemiddeld volume |
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 |
ExitOnCloudFlip aan |
De exit-functie moet ingeschakeld zijn |
| 2 | Cloud tegen de positie | De cloud staat al ExitConfirmationCandles gesloten candles tegen de positie |
| Parameter | Standaard | Beschrijving |
|---|---|---|
EntryOnBreakout |
aan | Signaal bij de break door het laatst bevestigde pivot-niveau |
EntryOnCloudCross |
uit | Signaal wanneer EMA(20) EMA(40) kruist |
EntryOnSpringboard |
uit | Signaal bij een pullback naar de snelle lijn binnen een lopende trend |
EntryOnLineCross |
uit | Signaal bij EMA(40) die SMA(50) kruist, nog voordat de cloud draait |
| Parameter | Standaard | Beschrijving |
|---|---|---|
FastEmaLength |
20 | De snelle lijn (EMA) |
SecondEmaLength |
40 | De crossover-partner (EMA) |
MediumSmaLength |
50 | De derde lijn (SMA) |
SlowSmaLength |
150 | De trage lijn (SMA), waarvan de helling het trendfilter aandrijft |
RequirePriceOutsideCloud |
aan | Close voorbij alle vier de lijnen — alleen voor de breakout-trigger |
MinimumCloudWidthPercentage |
0 | Van boven naar onder, als percentage van de prijs. Nul accepteert elke breedte |
RequireCloudWidening |
uit | Trend wint aan kracht in plaats van af te nemen |
| Parameter | Standaard | Beschrijving |
|---|---|---|
MinimumSlowLineSlopePercentage |
0 | Hoe ver de trage lijn is verschoven over de lookback, als percentage van haar eigen waarde. Nul is uit |
SlowLineLookbackCandles |
10 | Over hoeveel candles die verschuiving wordt gemeten |
| Parameter | Standaard | Beschrijving |
|---|---|---|
PivotLeftCandles |
5 | Hoeveel candles links lager (hoger) moeten zijn dan de pivot-candle |
PivotRightCandles |
5 | Hoeveel candles rechts; ook de vertraging voordat het niveau bevestigd is |
PivotMaximumAgeCandles |
0 | Hoe oud het niveau mag zijn in candles. Nul accepteert elke leeftijd |
BreakoutBufferPercentage |
0 | Hoe ver voorbij het niveau de candle moet sluiten, als percentage. Nul neemt elke close voorbij het niveau |
| Parameter | Standaard | Beschrijving |
|---|---|---|
UseRsiFilter |
uit | RSI moet akkoord zijn met de entry |
RsiLongMinimum |
50 | De RSI die een long minimaal nodig heeft (schaal 0..100) |
RsiShortMaximum |
50 | De RSI die een short maximaal mag hebben (schaal 0..100) |
| Parameter | Standaard | Beschrijving |
|---|---|---|
UseVolumeFilter |
uit | De signaalcandle moet een veelvoud van het gemiddeld volume handelen |
VolumeMultiplier |
3 | Hoeveel keer het gemiddeld volume de signaalcandle moet handelen |
VolumeAverageCandles |
20 | Over hoeveel candles voor de signaalcandle het gemiddeld volume wordt berekend. De signaalcandle zelf zit er niet in |
| Parameter | Standaard | Beschrijving |
|---|---|---|
ExitOnCloudFlip |
uit | Positie sluiten wanneer de cloud tegen de positie keert. Stop-loss en take-profit blijven daarnaast werken |
ExitConfirmationCandles |
0 | Hoeveel gesloten candles de cloud tegen de positie moet staan voordat de exit vuurt. Nul vertrekt op de eerste candle dat de EMA's terugkruisen |
| Indicator | Doel |
|---|---|
| EMA(20) | Snelle lijn — pullback-anker en eerste helft van de crossover |
| EMA(40) | Tweede lijn — crossover-partner |
| SMA(50) | Derde lijn — midden van de cloud |
| SMA(150) | Trage lijn — trendfilter via de helling |
| Pivot highs / lows | Support- en resistance-niveaus voor de breakout-trigger |
| RSI (optioneel) | Momentum-bevestiging |
- Trend-following / breakout
- Drie triggers die hetzelfde cloud-fundament delen maar verschillende ideeën belichamen
- Heeft een eigen exit-signaal (
IsExitSignal) wanneerExitOnCloudFlipaanstaat - Alle filters staan standaard uit — de kale regel wordt eerst gemeten, daarna elk filter apart
CryptoScanner.Analyzers/Mac/
├── MacPlugin.cs # Plugin registration
├── MacSettings.cs # Strategy-specific settings
├── Mac.md # Source documentation
├── MacCandleData.cs # Per-candle plugin data slot
├── MacLinesHelper.cs # Shared pivot/line logic
├── Chart/
│ └── MacChartOverlay.cs # Four lines, levels, and markers on the chart
├── Config/
│ ├── MacConfigView.cs # Config view composition
│ ├── StrategyMacSettingsView.axaml # Settings panel UI
│ ├── StrategyMacSettingsView.axaml.cs # Settings panel code-behind
│ ├── StrategyMacSettingsViewModel.cs # Settings viewmodel
│ ├── StrategyMacTabView.axaml # Tab UI
│ └── StrategyMacTabViewModel.cs # Tab viewmodel
├── Indicators/
│ └── MacIndicatorExtension.cs # Cloud, slope, and pivot computation
└── Signal/
└── MacBase.cs # Signal logic (MacLong, MacShort)
Geregistreerd in AnalyzerRegistration.cs. Strategienaam intern: Mac, in de emulator-queue: mac (tot 19-09-2026 tbo; oude wachtrijbestanden en runs blijven werken via de terugvalnaam in de plugin).
- Home
- Inleiding
- Exchanges en markttypes
- Installatie
- Instellingen
- Hoofdscherm
- Kleurkiezer
- Opstartparameters
- Veelgestelde vragen
- Bandbreedte-index (afgeschreven)
- SignalR
- Photino
- Webversie
- Support
- Alle strategieën
- Zones (sluitregels)
- Actief
- Experimenteel
- Niet beschikbaar