-
Notifications
You must be signed in to change notification settings - Fork 19
MACD Crossover (MacdCross)
De MacdCross-strategie handelt op de crossover van de MACD-lijn en zijn signaallijn. Een long opent wanneer de MACD-lijn boven de signaallijn sluit nadat hij eronder stond, een short wanneer hij eronder sluit nadat hij erboven stond. De positie wordt weer gesloten wanneer de twee lijnen terugkruisen.
De strategie leest de standaard MACD (12, 26, 9) die elke indicator-hub al berekent, en declareert ADX(14) voor zijn optionele trend-strength-filters.
Dit is de eerste strategie met een eigen exit-signaal. Ze implementeert SignalCreateBase.IsExitSignal, die de positiemonitor bij elke close van het interval van de positie raadpleegt. Stop-loss en take-profit blijven daarnaast gewoon werken — het is een extra uitweg, geen vervanging.
Per candle van het signaalinterval, voor de zijde die getoetst wordt, goedkoopste test eerst:
- De MACD-lijn moet aan de kant van de signaallijn staan die de trade begunstigt (erboven voor long, eronder voor short) op de candle die getoetst wordt en op de
ConfirmationCandleservoor. - De candle voor die bevestigingsreeks moet aan de andere kant staan — anders was er geen crossover.
- Optioneel moet de crossover voorbij de nullijn liggen (
RequireCrossBeyondZeroLine), afgelezen op de crossover-candle zelf. - Optioneel moeten de twee lijnen op de signaalcandle minstens
MinimumDistancePercentagevan de prijs uit elkaar liggen. - Optioneel moet de ADX(14) op de signaalcandle minstens
AdxMinimumzijn, en ergens in de laatsteAdxRecentlyWithinCandlescandles moet hij onderAdxRecentlyBelowzijn geweest. - Optioneel moet het gemiddelde volume van de laatste
RelativeVolumeCandlescandles minstensRelativeVolumeMinimumkeer het gemiddelde van deRelativeVolumeAverageCandleservoor zijn.
De exit wordt door de positiemonitor gevraagd bij elke close van het interval van de positie:
-
ExitOnCrossBackmoet aanstaan. - De MACD-lijn moet op de verkeerde kant van de signaallijn staan voor de positie op de laatst gesloten candle en op de
ExitConfirmationCandleservoor.
De exit is bewust een toestand ("de lijnen staan tegen ons"), geen gebeurtenis ("ze kruisten op deze candle"). De vlag die de monitor zet leeft alleen in het geheugen, en een toestand wordt na een herstart teruggevonden waar een gebeurtenis weg zou zijn.
Wanneer de strategie om exit vraagt, neemt de trader dezelfde deur als een positie voorbij Trading.MaxPositionDurationDays: de take-profit wordt een tick door de laatste prijs gericht, zodat de positie vertrekt tegen wat de markt op de volgende candle biedt. Een entry die nog niet gevuld is wordt in plaats daarvan geannuleerd.
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 | MACD-lijn > signaallijn | MACD-lijn sluit boven de signaallijn op de signaalcandle (en op de bevestigingscandles) |
| 2 | Crossover bevestigd | De candle voor de bevestigingsreeks stond aan de andere kant |
| 3 | Voorbij nullijn (optioneel) | MACD-lijn was nog onder nul op de crossover-candle (RequireCrossBeyondZeroLine) |
| 4 | Minimumafstand (optioneel) | Lijnen minstens MinimumDistancePercentage van de prijs uit elkaar |
| 5 | ADX-filter (optioneel) | ADX >= AdxMinimum en recent onder AdxRecentlyBelow geweest |
| 6 | Volume-filter (optioneel) | Recent volume >= RelativeVolumeMinimum x basisvolume |
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 | MACD-lijn < signaallijn | MACD-lijn sluit onder de signaallijn op de signaalcandle (en op de bevestigingscandles) |
| 2 | Crossover bevestigd | De candle voor de bevestigingsreeks stond aan de andere kant |
| 3 | Voorbij nullijn (optioneel) | MACD-lijn was nog boven nul op de crossover-candle (RequireCrossBeyondZeroLine) |
| 4 | Minimumafstand (optioneel) | Lijnen minstens MinimumDistancePercentage van de prijs uit elkaar |
| 5 | ADX-filter (optioneel) | ADX >= AdxMinimum en recent onder AdxRecentlyBelow geweest |
| 6 | Volume-filter (optioneel) | Recent volume >= RelativeVolumeMinimum x basisvolume |
| # | Voorwaarde | Beschrijving |
|---|---|---|
| 1 |
ExitOnCrossBack aan |
De exit-functie moet ingeschakeld zijn |
| 2 | Lijnen tegen de positie | MACD-lijn staat aan de verkeerde kant op de laatste gesloten candle en op de bevestigingscandles |
| Parameter | Standaard | Beschrijving |
|---|---|---|
ConfirmationCandles |
0 | Gesloten candles dat de lijnen na de crossover aan de nieuwe kant moeten blijven voordat het signaal vuurt. Nul vuurt op de crossover-candle. |
MinimumDistancePercentage |
0 | Minimumafstand tussen de twee lijnen op de signaalcandle, als percentage van de prijs. Nul accepteert elke afstand. |
RequireCrossBeyondZeroLine |
uit | Long alleen wanneer de MACD-lijn bij de crossover nog onder nul staat, short alleen wanneer hij erboven staat. |
| Parameter | Standaard | Beschrijving |
|---|---|---|
AdxMinimum |
0 | De ADX(14) op de signaalcandle moet minstens dit zijn. Nul is uit. |
AdxRecentlyBelow |
0 | Ergens in het venster moet de ADX onder dit niveau zijn geweest. Nul is uit. |
AdxRecentlyWithinCandles |
10 | Het venster voor de test hierboven, de signaalcandle meegerekend. |
De ADX meet de sterkte van een beweging op een 0..100-schaal, ongeacht de richting. Samen lezen AdxMinimum en AdxRecentlyBelow als "een ADX die nu uit de range klimt" — een jonge trend. De leerboekdrempels zijn 20 en 25; crypto op korte intervallen loopt heter, dus meten in plaats van aannemen.
| ADX | Betekenis |
|---|---|
| onder 20 | Ranging. Kopers en verkopers wisselen af en niemand wint. Hier draaien de MACD-lijnen om elkaar heen. |
| 20 – 25 | Onduidelijk, er kan iets beginnen. |
| boven 25 | Er loopt een trend, omhoog of omlaag — de richting volgt uit de koers, niet uit de ADX. |
| 40 – 50+ | Een sterke trend, vaak al ver gevorderd. |
| Parameter | Standaard | Beschrijving |
|---|---|---|
RelativeVolumeMinimum |
0 | Recent gemiddeld volume als veelvoud van het basisgemiddelde. Nul is uit. |
RelativeVolumeCandles |
3 | Het recente venster, de signaalcandle meegerekend. |
RelativeVolumeAverageCandles |
50 | De basislijn: over hoeveel candles voor het recente venster het gebruikelijke volume wordt gemiddeld. |
De recente candles worden bewust buiten de basislijn gehouden, zodat een spike zichzelf niet verdunt. Een waarde van 2 betekent dat de munt op dubbel tempo handelt: er is iets aan de hand.
| Parameter | Standaard | Beschrijving |
|---|---|---|
ExitOnCrossBack |
aan | Positie sluiten wanneer de lijnen terugkruisen tegen de positie. |
ExitConfirmationCandles |
0 | Gesloten candles dat de lijnen tegen de positie moeten staan voordat de exit vuurt. |
Let op: de afstand is een percentage van de prijs en geen absoluut getal, omdat de MACD in prijseenheden wordt gemeten — dezelfde absolute drempel zou iets anders betekenen op een munt van 65 000 dan op een munt van 0,01.
De kale MACD-crossover is gemeten en presteert op zichzelf niet goed. Het bekende probleem is de flat market: wanneer de koers nergens heen gaat draaien de twee lijnen om elkaar heen en kruisen ze elke paar candles, elke crossover een klein verlies. Gepubliceerde backtests van de kale crossover op dagelijkse aandelendata komen om precies die reden meestal rond nul uit na kosten. De strategie verdient in trending periodes en geeft het terug in de ranges ertussen.
Daarom staan alle filters standaard uit: de kale regel wordt eerst gemeten, en daarna elk filter apart, zodat de emulator zegt wat elk filter waard is. Het idee komt van een Ross Cameron-video: instappen op de crossover, uitstappen op de cross-back. Cameron gebruikt het op momentum-aandelen die al bewegen, wat een voorselectie is die deze strategie alleen maakt wanneer de ADX- en volume-filters aanstaan.
| Indicator | Doel |
|---|---|
| MACD (12, 26, 9) | Crossover-signaal en exit-signaal |
| ADX (14) | Optioneel trend-strength-filter (voorselectie) |
- Trend-following / crossover
- Eerste strategie met eigen exit-signaal (
IsExitSignal) - Veel kleine verliezen, een paar grotere winsten — de winrate zegt op zichzelf niets, het gemiddelde verlies tegen de gemiddelde winst wel
CryptoScanner.Analyzers/MacdCross/
├── MacdCrossPlugin.cs # Plugin registration
├── MacdCrossSettings.cs # Strategy-specific settings
├── MacdCross.md # Source documentation
├── Config/
│ ├── MacdCrossConfigView.cs # Config view composition
│ ├── StrategyMacdCrossSettingsView.axaml # Settings panel UI
│ ├── StrategyMacdCrossSettingsView.axaml.cs # Settings panel code-behind
│ ├── StrategyMacdCrossSettingsViewModel.cs # Settings viewmodel
│ ├── StrategyMacdCrossTabView.axaml # Tab UI
│ └── StrategyMacdCrossTabViewModel.cs # Tab viewmodel
└── Signal/
└── MacdCrossBase.cs # Signal logic (long, short, and exit)
Geregistreerd in AnalyzerRegistration.cs. Strategienaam intern: MacdCross, in de emulator-queue: macdcross.
- 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