Student Wyckoff · Elliott Wave

Blog et pratique

Laboratoire Elliott : MT4, MT5, Pine et Python

Trois exemples pédagogiques : OHLC clôturé, pivots confirmés et six points de prix.

Équipe éditoriale Student Wyckoff

Publié le (UTC+3)

Русский · English · Deutsch · Español · Français · Italiano · 繁體中文 · 日本語 · 한국어

Définissez entrées, ordre des barres et disponibilité avant de programmer un décompte. Ces exemples originaux réalisent des opérations partielles, pas une détection Elliott complète. Ils ne prouvent aucune intégration Pro/Light et ne transmettent aucun ordre.

MT4, MT5 et MQL5 : contrat OHLC

Dans MQL4/MQL5, CopyRates avec start_pos=0 inclut la barre courante inachevée. L’exemple demande trois barres D1 dès la position 1. Exigez exactement 3 retours ; erreur ou historique incomplet imposent arrêt et nouvelle vérification. ArraySetAsSeries(false) lit les anciennes d’abord ; CopyRates les place physiquement au début quel que soit le drapeau série.

Conservez symbole, fuseau du courtier, séance, ajustements, OHLC et unités de volume. Volume de ticks et volume réellement négocié en bourse ne sont pas interchangeables. Obtenir MqlRates ne détecte pas les vagues et ne prouve pas un CSV compatible Pro. Vérifiez le format d’import séparément ; aucun test exécuté du terminal n’est revendiqué.

void OnStart() {
  MqlRates rates[];
  ArraySetAsSeries(rates, false);
  int n = CopyRates(_Symbol, PERIOD_D1, 1, 3, rates);
  if(n != 3) { Print("Need 3 completed bars; received ", n); return; }
  for(int i=0; i<n; i++)
    Print(rates[i].time, " ", rates[i].open, " ", rates[i].high,
          " ", rates[i].low, " ", rates[i].close);
}

Pine Script : pivot et disponibilité

ta.pivothigh(high,2,2) exige deux barres à droite. Un sommet en 10 devient connu à la clôture de 12. offset=-2 déplace le dessin vers 10 sans déplacer l’information dans le passé. L’étiquette apparaît à la confirmation et conserve les deux indices.

Créez l’alerte dans l’interface après ajout du script et vérifiez la clôture. Le fragment ne valide ni subdivisions, ni degrés, ni corrections. Distinguez outils natifs et exemple Pine d’ExtraLight : sa page actuelle annonce une sortie future et aucun accès payant ouvert.

//@version=6
indicator("Confirmed pivot record", overlay=true, max_labels_count=100)
p = ta.pivothigh(high, 2, 2)
confirmed = barstate.isconfirmed and not na(p)
plot(confirmed ? p : na, style=plot.style_cross, offset=-2)
if confirmed
    label.new(bar_index, high, str.format("pivot {0}; available {1}", bar_index-2, bar_index))
    alert("Confirmed high pivot", alert.freq_once_per_bar_close)

Python : CSV et contrôle des prix

csv.DictReader renvoie des chaînes ; Decimal prend la chaîne d’origine sans float intermédiaire. Pour un fichier : open(path,newline="",encoding="utf-8"). Les six points fictifs vérifient seulement une partie des contraintes de prix d’une impulsion haussière ordinaire.

100→120→110→145→125→150 donne des longueurs motrices 20,35,25 : la 3 n’est pas la plus courte et la 4 reste au-dessus de 120. Remplacer 125 par 119 enfreint le non-chevauchement. True ne prouve ni sous-vagues, degré, sélection des pivots ou rentabilité ; les diagonales requièrent d’autres règles.

Le test f>d limite aussi cet exemple à une cinquième non tronquée. Une cinquième tronquée peut rester sous le sommet de la troisième ; le rejet de cette fonction n’exclut donc pas à lui seul une autre impulsion valide.

import csv, io
from decimal import Decimal as D

csv_text = "point,price\n0,100\n1,120\n2,110\n3,145\n4,125\n5,150\n"
with io.StringIO(csv_text, newline="") as stream:
    p = [D(row["price"]) for row in csv.DictReader(stream)]

def upward_price_subset(p):
    if len(p) != 6: return False
    a,b,c,d,e,f = p
    l1,l3,l5 = b-a,d-c,f-e
    return (b>a and a<c<b and d>b and b<e<d and f>d
            and l3 >= min(l1,l5))

assert upward_price_subset(p)
assert not upward_price_subset(p[:4]+[D("119"),p[5]])
print(upward_price_subset(p))  # True: price subset only

MT4 et MT5 : contrat des buffers

MQL4 iCustom renvoie une valeur de buffer avec mode et shift. MQL5 iCustom renvoie un handle ; CopyBuffer lit les valeurs. Ces interfaces ne prouvent aucune détection Elliott d’un indicateur non identifié. Sauvegardez fichier, version, entrées, sens des buffers, absences et coupure des barres clôturées.

Employez la même série du courtier conservée pour les deux essais. Extrême ZigZag, marque de vague et signal nécessitent des contrôles différents. Examinez retard et révision historique ; l’inconnu reste inconnu. Le précédent CopyRates obtient seulement des données. Aucun binaire gratuit précis, lien avec Pro ou ordre automatique n’est établi.

InterfaceRetour
MT4 / iCustomdouble: mode + shift
MT5 / iCustomhandle → CopyBuffer
P4=119 / P1=120Non. Le non-chevauchement échoue ; les autres contrôles structurels restent distincts.

TradingView : figures formées, paramètres et alertes

La documentation Elliott Waves de TradingView décrit une recherche d’impulsions et de zigzags sur les 600 dernières barres. Les deux niveaux d’étiquettes représentent l’emboîtement, pas des degrés historiques Elliott automatiquement établis. Les pivots retenus privilégient les grands mouvements, sans représenter tous les décomptes possibles. Documentation vérifiée le 25 octobre 2026 ; aucun test installé dans le compte utilisateur n’est revendiqué.

Avant une modification, conservez symbole avec place, intervalle, échelle, dernière barre close, tous les paramètres et capture. Dans le dialogue d’alerte, sélectionnez l’indicateur comme condition puis un de ses trois événements documentés. Une partie déclarée formée ne confirme pas une figure Elliott entière. L’accès dépend du compte ; aucun forfait gratuit particulier n’est garanti.

Paramètre ou événementSens et vérification reproductible
Invert patternInverse la recherche : impulsion baissière et zigzag haussier. Gardez la même fenêtre sauvegardée.
In progressInclut les structures inachevées. Désactivez pour ne comparer que les figures reconnues comme terminées ; de nouvelles données peuvent encore les réviser.
Length type: Absolute / PercentAbsolute mesure les écarts de prix, Percent les variations relatives. Fixez le choix : classement des longueurs et tests peuvent changer.
Show projectionsAffiche des vagues futures possibles par références Fibonacci en mode In progress. Une projection tracée n’est pas un prix observé.
Pivots / dernière vagueLes points sont liés à des pivots adaptés ; la dernière vague en cours utilise un extrême local. Notez disponibilité et déplacements ultérieurs.
New patternNouvelle figure ou reconstruction déplaçant simultanément au moins deux points ; le déplacement du tout premier est exclu.
New potential waveUne vague en formation est ajoutée, ou la dernière vague formée est déplacée et reprend sa formation.
Wave formedUne vague auparavant en cours s’est formée. Gardez heure, événement et état ; aucun rendement n’est garanti.
RecalculLes données nouvelles révisent les figures précédentes ; tout changement de paramètre provoque un recalcul complet. Comparez avec la même entrée conservée.

Sources et limites