Calcolare la media mobile a n periodi dei volumi
Forums › ProRealTime forum Italiano › Supporto ProOrder › Calcolare la media mobile a n periodi dei volumi
- This topic has 9 replies, 2 voices, and was last updated 1 month ago by
robertogozzi.
-
-
02/17/2025 at 6:42 PM #243951
Buongiorno,
in relazione ad un altro argomento.. Vorrei calcolare la media mobile a n periodi dei volumi ma solo con riferimento a delle specifiche barre orarie, esempio: media mobile degli ultimi 20 periodi ma solo sulla barra della prima ora di negoziazione. Che tipo di codice possono usare per un indicatore o un sistema di trading? Grazie mille
02/17/2025 at 9:00 PM #243957Quando devi porre nuove domande non correlate ad altre già fatte, anche se simili, inizia una nuova discussione. Grazie 🙂
Adesso ho iniziato io questa nuova discussione.
Puoi usare l’indicatore TRSMA che puoi trovare a questo link https://www.prorealcode.com/prorealtime-indicators/time-range-moving-averages-simple-exponential-weighted-trsma-trema-trwma/.
Comuque te lo riporto qui con la modifca per il VOLUME (anziché CLOSE) e con gli orari tra le 9 e le 10 (dalle 090000 alle 100000):
12345678910111213141516171819202122232425// TRSMA//// Time Range Simple Moving Average//DEFPARAM CalculateOnLastBars = 2000Periods = 20StartTime = 090000EndTime = 100000//i = 0TRSMA = 0FOR j = 0 TO 3000IF opentime[j] >= StartTime AND opentime[j] <= EndTime THENTRSMA = TRSMA + volume[j]//close[j]i = i + 1IF i = Periods THENBREAKENDIFENDIFNEXTTRSMA = (TRSMA / Periods)IF TRSMA = 0 THENTRSMA = volume//closeENDIFReturn TRSMA AS "TRSMA"02/18/2025 at 1:34 PM #243984Buongiorno, grazie per la pronta risposta. Non trovo corrispondenza però tra i valori dell’indicatore e i dati che posso elaborare su excel
data Volumi MM20 excel Indicatore 15/01/2025 4312 16/01/2025 7730 17/01/2025 5772 20/01/2025 3436 21/01/2025 3102 4870 22/01/2025 5952 5051 23/01/2025 3884 4884 24/01/2025 3658 4731 27/01/2025 7408 5028 28/01/2025 4946 5020 29/01/2025 3791 4908 30/01/2025 3744 4811 31/01/2025 3614 4719 03/02/2025 9195 5039 04/02/2025 6913 5164 05/02/2025 4516 5123 06/02/2025 5568 5149 07/02/2025 5606 5175 10/02/2025 4466 5138 11/02/2025 5672 5164 4050 12/02/2025 5179 5208 4136 13/02/2025 8737 5258 4434 14/02/2025 6601 5299 4610 Nella tabella ho riportato: 1) colonna 1 volumi della prima ora del dax 2) colonna 2 i volumi della media con 20 valori (mettendo anche l’ultimo) 3) colonna 3 i valori dell’indicatore. Mi aspetterei che l’indicatore desse un un valore uguale o molto simile a quello calcolato su excel. Cosa non quadra? Come faccio ad avere quei valori che calcolo con excel? Inoltre, come faccio ad usare questo dato in un trading system (funzione call forse). Esempio se i volumi della prima ora superano il valore calcolato dall’indicatore compra ecc. Potresti farmi un esempio semplice di codice.
P.S. Si hai ragione dovevo iniziare un nuovo topic, grazie per l’indicazione
02/18/2025 at 4:33 PM #243988Qual’è la prima ora del Dax?
02/19/2025 at 2:09 PM #244040La prima ora (rilevante) intendevo quella dei tuoi codici ossia dalle 9 alle 10. Sono i volumi dalle 9 alle 10 confrontati con i valori dell’indicatore così come mi appare inserendo il codice nella piattaforma
02/19/2025 at 2:56 PM #244053Verificherò appena possibile.
02/23/2025 at 12:08 PM #244217Ad esempio ho messo questo semplice indicatore che mi riporta effettivamente i volumi necessari. Il problema è che vorrei solo una barra per ogni giorno anziché tutte le 21 uguali per tutte le ore di trading. In questo modo calcolando una media mobile a n periodi il calcolo sarebbe corretto, ma non so fare uscire una sola. Non so se ci si può arrivare da questa strada come spunto.
TimeFrame (hourly, UpdateOnClose)
IF TIME=100000 THEN
VOL=volume
endifRETURN VOL
02/24/2025 at 11:00 PM #244318Ho trovato alcuni errori logici nel codice (c’erano anche degli errori dei dati nel tuo file eXcel, come da foto allegata). Questa è la versione aggiornata:
12345678910111213141516171819202122232425262728// TRSMA sul Volume//// Time Range Simple Moving Average//DEFPARAM CalculateOnLastBars = 2000Periods = 20StartTime = 090000EndTime = 100000Periods = max(2,min(999,Periods))StartTime = max(0,min(240000,StartTime))EndTime = max(0,min(240000,EndTime))//i = 0TRSMA = 0FOR j = 0 TO 2000IF opentime[j] >= StartTime AND opentime[j] < EndTime THENTRSMA = TRSMA + volume[j]i = i + 1IF i = Periods THENBREAKENDIFENDIFNEXTTRSMA = (TRSMA / Periods)IF TRSMA = 0 THENTRSMA = volumeENDIFReturn TRSMA AS "TRSMA"02/25/2025 at 1:33 PM #244339Ok grazie funziona. Ultime due cose:
- come faccio ad adattarlo a time frame diversi? Ad esempio sui volumi delle barre a 15 minuti? Ad esempio mettendo startime=091500 e endtime=093000 il grafico diventa solo una scaletta. Non capisco quali altri parametri devo modificare e in che modo
- come faccio ad usare il parametro in un sistema di trading? Per esempio per dire un semplice sistema: se il volume dalle 9 alle 10 o dalle 15 alle 16 supera il trsma in quell’ora allora compra o vendi? Grazie in anticipo
02/25/2025 at 2:21 PM #244341E’ una scaletta perché dopo le 093000 non cambia più fino al giorno dopo.
Non è possibile fare altrimenti.
-
AuthorPosts
Find exclusive trading pro-tools on