Forums › ProRealTime Deutsch forum › ProOrder Support › Hier ist eine einfache Strategie für de40 und vgl › Reply To: Hier ist eine einfache Strategie für de40 und vgl
11/30/2025 at 4:36 PM
#254105
Annäherung
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
// ============================================== // ATH stacked buys sous ATH -X% (version PRT) // - Timeframe : 1 heure (appliquer le système sur H1) // - ATH sur LookbackDays (~ jours * 24 barres) // - On empile des achats à chaque palier de % sous l'ATH // - TP global = ATH + 1 point // ============================================== DEFPARAM CumulateOrders = True DEFPARAM PreLoadBars = 10000 // ---------- Paramètres utilisateur ---------- // Taille de base par niveau UnitsPerLevel = 1 // Fenêtre de calcul de l'ATH (en jours approx.) LookbackDays = 365 // Niveaux en % sous l'ATH Level1 = 5.0 Level2 = 10.0 Level3 = 15.0 Level4 = 20.0 Level5 = 25.0 Level6 = 30.0 Level7 = 35.0 Level8 = 40.0 Level9 = 45.0 // ---------- Variables internes ---------- ONCE LastAth = 0 ONCE Initialised = 0 // ---------- Calcul de l'ATH sur la fenêtre LookbackDays ---------- // Approximation : 1 jour ≈ 24 bougies H1 BarsPerDay = 24 BarsLookback = LookbackDays * BarsPerDay IF BarIndex > 0 THEN Ath = High BarsToScan = BarsLookback IF BarsToScan > BarIndex THEN BarsToScan = BarIndex ENDIF FOR i = 1 TO BarsToScan DO ThisHigh = High[i] IF ThisHigh > Ath THEN Ath = ThisHigh ENDIF NEXT ELSE Ath = High ENDIF // Initialisation & mise à jour de l'ATH IF Ath > 0 THEN IF Initialised = 0 THEN LastAth = Ath Initialised = 1 ELSE IF Ath > LastAth THEN // Nouvel ATH : on remonte la référence LastAth = Ath ENDIF ENDIF ENDIF // Si l'ATH n'est pas encore initialisé, on ne fait rien IF Initialised = 0 THEN quit ENDIF // ---------- Calcul du TP global ---------- BaseTp = LastAth + PointSize // ---------- Calcul des prix de niveaux ---------- // On ne place des niveaux que si le % > 0 PriceLevel1 = 0 PriceLevel2 = 0 PriceLevel3 = 0 PriceLevel4 = 0 PriceLevel5 = 0 PriceLevel6 = 0 PriceLevel7 = 0 PriceLevel8 = 0 PriceLevel9 = 0 IF Level1 > 0 THEN PriceLevel1 = LastAth * (1 - Level1 / 100) ENDIF IF Level2 > 0 THEN PriceLevel2 = LastAth * (1 - Level2 / 100) ENDIF IF Level3 > 0 THEN PriceLevel3 = LastAth * (1 - Level3 / 100) ENDIF IF Level4 > 0 THEN PriceLevel4 = LastAth * (1 - Level4 / 100) ENDIF IF Level5 > 0 THEN PriceLevel5 = LastAth * (1 - Level5 / 100) ENDIF IF Level6 > 0 THEN PriceLevel6 = LastAth * (1 - Level6 / 100) ENDIF IF Level7 > 0 THEN PriceLevel7 = LastAth * (1 - Level7 / 100) ENDIF IF Level8 > 0 THEN PriceLevel8 = LastAth * (1 - Level8 / 100) ENDIF IF Level9 > 0 THEN PriceLevel9 = LastAth * (1 - Level9 / 100) ENDIF // ---------- Taille "théorique" à détenir selon la baisse vs ATH ---------- // Idée : // - On compte combien de niveaux ont été atteints par le prix actuel (Close) // - Pour chaque niveau atteint, on veut UnitsPerLevel en plus // - On n'allège jamais sur rebond : la taille cible ne fait qu'augmenter TargetSize = 0 IF PriceLevel1 > 0 AND Close <= PriceLevel1 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel2 > 0 AND Close <= PriceLevel2 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel3 > 0 AND Close <= PriceLevel3 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel4 > 0 AND Close <= PriceLevel4 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel5 > 0 AND Close <= PriceLevel5 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel6 > 0 AND Close <= PriceLevel6 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel7 > 0 AND Close <= PriceLevel7 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel8 > 0 AND Close <= PriceLevel8 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF IF PriceLevel9 > 0 AND Close <= PriceLevel9 THEN TargetSize = TargetSize + UnitsPerLevel ENDIF // On ne réduit jamais la taille : si le prix remonte, // on garde au moins la taille déjà détenue. CurrentSize = COUNTOFPOSITION IF TargetSize < CurrentSize THEN TargetSize = CurrentSize ENDIF // ---------- Entrées supplémentaires (empilement) ---------- AdditionalSize = TargetSize - CurrentSize IF AdditionalSize > 0 THEN // On place / met à jour le TP global pour toutes les positions longues IF BaseTp > 0 THEN SET TARGET PRICE BaseTp ENDIF BUY AdditionalSize SHARES AT MARKET ENDIF |