Indicateurs à partir du prix de plusieurs actifs

Forum dédié à ProRealTime : les questions sur P, les trucs et astuces sur l'interface de trading...
Avatar du membre
Shady
Membre du Conseil Jedi
Messages : 10353
Enregistré le : 16 avr. 2017 20:02

Indicateurs à partir du prix de plusieurs actifs

Message non lu par Shady »

Bonjour à tous,

J'aimerais me fabriquer un indicateur qui calcule l'amplitude du nasdaq - l'amplitude du dowjones sur la journée. J'ai gentiment demandé à chatGPT et il m'a sortit un truc sympa. Seul problème je n'arrive pas à faire le lien avec mes actifs.
Comme vous voyez sur le screen ci-dessous, il m'affiche un warning sur les lignes où il récupère le prix. J'ai essayer plusieurs ticker mais rien n'y fait et je n'ai rien trouvé sur le net, ni sur le forum. J'ai aussi essayé avec l'outils de spread mais on ne peut pas mettre de fonction high et low ou max et min.

Si quelqu'un a une idée je suis preneur.

Merci d'avance et bonne journée.
image_2024-08-29_180907368.png
image_2024-08-29_180907368.png (53.96 Kio) Vu 6012 fois
Avatar du membre
JPM55
Membre du Conseil Jedi
Messages : 10595
Enregistré le : 14 févr. 2020 13:21

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par JPM55 »

Hello, j'ai cherché mais pas trouvé. Cela semble impossible à moins de stocker les data dans un tableau puis les appeler ensuite dans le code, mais je n'y suis pas parvenu.

Bon chance :joker:
Avatar du membre
Senti
Apprenti Jedi
Messages : 528
Enregistré le : 01 août 2023 14:15

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par Senti »

Salut Shady,

Je ne suis pas expert en prorealcode mais j'ai remis les mains dedans récemment.

J'ai lu sur le net que tu ne peux pas coder un indicateur qui accède à plusieurs actifs.
Au lieu de ça, il faut visiblement créer un "instrument", basé sur les différents actifs que tu veux, et ensuite y appliquer un indicateur fait maison.
Ref : https://www.centralcharts.com/fr/gm/1-apprendre/5-trading/14-strategie/1150-speculer-diffenretiel-evolution-deux-actifs (je ne sais pas si on peut envoyer des liens)

Attention aux chatGpt et autres copains IA, ils inventent souvent de la syntaxe... l'intention est bonne, mais pas le résultat.

edit : je pense que ça ne répondra pas à ton besoin, puisque tu veux d'abord effectuer un calcul sur chaque actif avant de les comparer.
Avatar du membre
DeltaMike
Membre du Conseil Jedi
Messages : 5344
Enregistré le : 01 nov. 2022 10:11

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par DeltaMike »

Shady, je copie ici ce que j'ai mis dans la file du jour.
Avec prorealcode je ne sais pas,

mais avec "instrument calculés" de prt on peu faire une combinaison de pleins de d'indices avec la formule que l'on veut, et sortir un graph avec toutes les ut et tout le reste...

j'ai utilisé ça pour essayer du "spread trading" entre le nasdaq et le SP500 basé sur des retours à la normale entre indices corrélés apres des moments de divergences.

il fallait calculer le nombre de lots corespondants pour avoir une position avec les deux indices la plus proche possible de l'écart du moment. ( avec les cfd à risque limité on pouvait ajuster ça à la decimale pres), et si les deux indices tendent a redevenir corrélés, on gagne de l'argent, comme une prise de position normale.

enfin..ptete ça tu connais deja ;)
Avatar du membre
Senti
Apprenti Jedi
Messages : 528
Enregistré le : 01 août 2023 14:15

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par Senti »

Peut-être que le compromis pour toi serait celui-ci :
- une première fenêtre graphique avec le nasdaq (affichage en journalier, si je comprends bien) sur laquelle tu appliques ton indicateur custom (qui consisterait à afficher un histogramme, par exemple, des amplitudes high/low de l'intervalle sélectionné),
- une deuxième fenêtre avec le DJ -> même chose
- et tu colles verticalement les 2 fenêtres (dans lesquelles tu n'affiches que les indicateurs) l'une à l'autre

Ca fait un peu bricolo, mais au moins tu auras 2 histogrammes juxtaposés qui te permettent de faire ton analyse, visuellement. Sur une fréquence journalière, c'est peut-être acceptable pour toi.

Sinon une autre solution qui me vient en tête est d'extraire les data des 2 cours (je ne sais pas faire) et faire le même code que chatGPT t'a suggéré mais cette fois-ci en python (hors prt donc). Jamais fait, mais avec l'assistance d'une IA je pense que c'est abordable.
Avatar du membre
Shady
Membre du Conseil Jedi
Messages : 10353
Enregistré le : 16 avr. 2017 20:02

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par Shady »

Wow, merci pour votre réactivité. Je vois que malheureusement nous arrivons à la même conclusion.
J'ai trouvé mon bonheur sur Tradingview. Décidemment chatGPT c'est incroyable.

Le seul hic sur Tradingview est l'origine des données mais pour mon utilisation ça fera l'affaire, voici un aperçu.
Image jointe
Voici le Code :
Spoiler:
//@version=5
indicator("Amplitude nasdaq - Dow Jones (Heures d'ouverture)", overlay=false)

// Définir les horaires d'ouverture de la bourse en UTC
open_time = timestamp("Europe/Paris", year, month, dayofmonth, 15, 30) // 15h30 heure de Paris
close_time = timestamp("Europe/Paris", year, month, dayofmonth, 22, 0) // 22h00 heure de Paris

// Vérifier si l'heure actuelle est dans la plage d'ouverture
is_market_open = (time >= open_time and time <= close_time)

// Récupérer les symboles du nasdaq et du Dow Jones
nasdaq_symbol = "TVC:NDQ" // Remplacez par le symbole correct si nécessaire
dowjones_symbol = "TVC:DJI" // Remplacez par le symbole correct si nécessaire

// Calcul de l'amplitude quotidienne du nasdaq
nasdaq_high = request.security(nasdaq_symbol, "D", high)
nasdaq_low = request.security(nasdaq_symbol, "D", low)
nasdaq_amplitude = nasdaq_high - nasdaq_low

// Calcul de l'amplitude quotidienne du Dow Jones
dowjones_high = request.security(dowjones_symbol, "D", high)
dowjones_low = request.security(dowjones_symbol, "D", low)
dowjones_amplitude = dowjones_high - dowjones_low

// Calcul de la différence entre les amplitudes
amplitude_difference = nasdaq_amplitude - dowjones_amplitude

// Afficher la différence uniquement si la bourse est ouverte
plot(is_market_open ? amplitude_difference : na, color=color.blue, style=plot.style_line, title="Amplitude nasdaq - Dow Jones")

// Tracer une ligne horizontale noire à la valeur 0 avec une épaisseur de 2
hline(0, "Ligne à 0", color=color.black, linewidth=2,linestyle=hline.style_solid)

// Ajouter une marque avec la dernière valeur de amplitude_difference sur l'axe des ordonnées
var label last_value_label = na
if (is_market_open)
if (na(last_value_label))
last_value_label := label.new(x=bar_index, y=amplitude_difference, text=str.tostring(amplitude_difference, format.mintick), color=color.blue, textcolor=color.white, size=size.normal, style=label.style_label_down, yloc=yloc.price)
else
label.set_xy(last_value_label, bar_index, amplitude_difference)
label.set_text(last_value_label, str.tostring(amplitude_difference, format.mintick))
Avatar du membre
Shady
Membre du Conseil Jedi
Messages : 10353
Enregistré le : 16 avr. 2017 20:02

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par Shady »

J'ai modifie en histogramme pour avoir 0 hors séance
Image jointe
Spoiler:
//@version=5
indicator("Amplitude nasdaq - Dow Jones (Heures d'ouverture)", overlay=false)

// Définir les horaires d'ouverture de la bourse en UTC
open_time = timestamp("Europe/Paris", year, month, dayofmonth, 15, 30) // 15h30 heure de Paris
close_time = timestamp("Europe/Paris", year, month, dayofmonth, 22, 0) // 22h00 heure de Paris

// Vérifier si l'heure actuelle est dans la plage d'ouverture
is_market_open = (time >= open_time and time <= close_time)

// Récupérer les symboles du nasdaq et du Dow Jones
nasdaq_symbol = "TVC:NDQ" // Remplacez par le symbole correct si nécessaire
dowjones_symbol = "TVC:DJI" // Remplacez par le symbole correct si nécessaire

// Calcul de l'amplitude quotidienne du nasdaq
nasdaq_high = request.security(nasdaq_symbol, "D", high)
nasdaq_low = request.security(nasdaq_symbol, "D", low)
nasdaq_amplitude = nasdaq_high - nasdaq_low

// Calcul de l'amplitude quotidienne du Dow Jones
dowjones_high = request.security(dowjones_symbol, "D", high)
dowjones_low = request.security(dowjones_symbol, "D", low)
dowjones_amplitude = dowjones_high - dowjones_low

// Calcul de la différence entre les amplitudes
amplitude_difference = nasdaq_amplitude - dowjones_amplitude

// Tracer une ligne horizontale noire à la valeur 0 avec une épaisseur de 2
hline(0, "Ligne à 0", color=color.black, linewidth=2, linestyle=hline.style_solid)

// Afficher la différence uniquement si la bourse est ouverte
plot(is_market_open ? amplitude_difference : na, color=color.blue, style=plot.style_histogram, title="Amplitude nasdaq - Dow Jones")

// Ajouter une marque avec la dernière valeur de amplitude_difference sur l'axe des ordonnées uniquement pendant les heures d'ouverture
var label last_value_label = na
if (is_market_open)
if (na(last_value_label))
last_value_label := label.new(x=bar_index, y=amplitude_difference, text=str.tostring(amplitude_difference, format.mintick), color=color.blue, textcolor=color.white, size=size.normal, style=label.style_label_down, yloc=yloc.price)
else
label.set_xy(last_value_label, bar_index, amplitude_difference)
label.set_text(last_value_label, str.tostring(amplitude_difference, format.mintick))
Avatar du membre
Senti
Apprenti Jedi
Messages : 528
Enregistré le : 01 août 2023 14:15

Re: Indicateurs à partir du prix de plusieurs actifs

Message non lu par Senti »

:top: :bravo:

Bien d'accord avec toi pour ChatGPT (tu peux aussi essayer Perplexity, très bon collègue virtuel aussi).