Idea semplice se oggi durante la giornata supera al ribasso il minimo di dieir entra long oggi al supermercato del massimo di ieri. Time frime 5 minuti.
Ho messo X1 e X2 se no mi entra lunedì sulla candela della domenica. Il problema è che non mi fa le entrate su tutti i segnali validi. Non capisco dove possa stare l’errore
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 2000
// — PARAMETRI —
// Stop Loss e Take Profit in punti
MyStop = 100
MyTarget = 210
// Orario di fine giornata per chiudere la posizione il giorno successivo
// (Modifica 220000 con l’orario di chiusura del tuo mercato, es: 173000 per azioni IT)
OrarioChiusura = 220000
// — VARIABILI DI RIFERIMENTO —
IeriMax = DHigh(1)
IeriMin = DLow(1)
// — LOGICA DI INGRESSO —
// 1. SHORT: Se il prezzo supera il massimo di ieri, piazza ordine di vendita sul minimo di ieri
// L’ordine è di tipo STOP perché vendiamo a un prezzo più basso dell’attuale
IF High > IeriMax AND Not OnMarket THEN
SELLSHORT 1 CONTRACT AT IeriMin STOP
ENDIF
// 2. LONG: Se il prezzo rompe il minimo di ieri, piazza ordine di acquisto sul massimo di ieri
// L’ordine è di tipo STOP perché compriamo a un prezzo più alto dell’attuale
IF Low < IeriMin AND Not OnMarket THEN
BUY 1 CONTRACT AT IeriMax STOP
ENDIF
// — GESTIONE STOP E TARGET —
SET STOP PLOSS MyStop
SET TARGET PPROFIT MyTarget
// — USCITA TEMPORALE (Durata: un giorno in più) —
// Se siamo a mercato e la data corrente è diversa dalla data di ingresso
// significa che siamo nel “giorno successivo”. Chiudiamo a fine giornata.
IF OnMarket AND (Date <> Date[BarIndex – TradeIndex]) THEN
IF Time >= OrarioChiusura THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
JSParticipant
Senior
Ciao,
A prima vista non vedo nulla di strano nel codice…
Puoi fornire un esempio di alcuni segnali errati…?
Forse questo è quello che vuoi:
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 2000
// — PARAMETRI —
// Stop Loss e Take Profit in punti
MyStop = 100
MyTarget = 210
// Orario di fine giornata per chiudere la posizione il giorno successivo
// (Modifica 220000 con l’orario di chiusura del tuo mercato, es: 173000 per azioni IT)
OrarioChiusura = 220000
// — VARIABILI DI RIFERIMENTO —
IeriMax = DHigh(1)
IeriMin = DLow(1)
IF Time >= 220000 THEN
IeriMaxFlag = 0
IeriMinFlag = 0
ELSE
IF High > IeriMax THEN
IeriMaxFlag = 1
ENDIF
IF Low < IeriMin THEN
IeriMinFlag = 1
ENDIF
ENDIF
// — LOGICA DI INGRESSO —
// 1. SHORT: Se il prezzo supera il massimo di ieri, piazza ordine di vendita sul minimo di ieri
// L’ordine è di tipo STOP perché vendiamo a un prezzo più basso dell’attuale
IF High > IeriMax AND IeriMinFlag AND Not OnMarket THEN
SELLSHORT 1 CONTRACT AT IeriMin STOP
ENDIF
// 2. LONG: Se il prezzo rompe il minimo di ieri, piazza ordine di acquisto sul massimo di ieri
// L’ordine è di tipo STOP perché compriamo a un prezzo più alto dell’attuale
IF Low < IeriMin AND IeriMaxFlag AND Not OnMarket THEN
BUY 1 CONTRACT AT IeriMax STOP
ENDIF
// — GESTIONE STOP E TARGET —
SET STOP PLOSS MyStop
SET TARGET PPROFIT MyTarget
// — USCITA TEMPORALE (Durata: un giorno in più) —
// Se siamo a mercato e la data corrente è diversa dalla data di ingresso
// significa che siamo nel "giorno successivo". Chiudiamo a fine giornata.
IF OnMarket AND (Date <> Date[BarIndex - TradeIndex]) THEN
IF Time >= OrarioChiusura THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
ENDIF
//graphonprice Dhigh(1) coloured("Blue")
//graphonprice Dlow(1) coloured("Red")
//graph (High > IeriMax) OR (Low < IeriMin)
//graph IeriMinFlag
//graph IeriMaxFlag
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 2000
// --- PARAMÈTRES ---
MyStop = 100 // stop loss en points
MyTarget = 210 // take profit en points
OrarioChiusura = 220000 // heure de clôture le jour suivant (ex: 220000)
// --- RÉFÉRENCES JOURNALIÈRES ---
IeriMax = DHigh(1) // plus haut d'hier
IeriMin = DLow(1) // plus bas d'hier
// --- MÉMO DATE D'ENTRÉE ---
ONCE EntryDate = 0
// Quand on ouvre une position (transition pas-en-position -> en position)
IF OnMarket AND NOT OnMarket[1] THEN
EntryDate = Date
ENDIF
// Filtre optionnel : on n'utilise "hier" que si c'est un jour de semaine (1 à 5)
// -> évite de baser les niveaux sur une éventuelle bougie de dimanche
IeriValide = (DayOfWeek[1] >= 1 AND DayOfWeek[1] <= 5)
// =============================
// LOGIQUE D'ENTRÉE
// =============================
// 1) SHORT : si on dépasse le plus haut d'hier, on place un ordre short stop sur le plus bas d'hier
IF IeriValide AND High > IeriMax AND NOT OnMarket THEN
SELLSHORT 1 CONTRACT AT IeriMin STOP
ENDIF
// 2) LONG : si on casse le plus bas d'hier, on place un ordre long stop sur le plus haut d'hier
IF IeriValide AND Low < IeriMin AND NOT OnMarket THEN
BUY 1 CONTRACT AT IeriMax STOP
ENDIF
// =============================
// GESTION STOP & TARGET
// =============================
SET STOP PLOSS MyStop
SET TARGET PPROFIT MyTarget
// =============================
// SORTIE TEMPORELLE : JOUR SUIVANT
// =============================
// Si on est en position et qu'on n'est plus à la date d'entrée,
// alors on est au "jour suivant" : on ferme à partir de OrarioChiusura.
IF OnMarket AND Date <> EntryDate THEN
IF Time >= OrarioChiusura THEN
SELL AT MARKET // ferme une position longue si elle existe
EXITSHORT AT MARKET // ferme une position short si elle existe
ENDIF
ENDIF
Vi ringrazio per l’interessamento ma anche nelle vostre modifiche non entra correttamente. Ad esempio dax 5 minuti lui dovrebbe entrare il 25 novembre 2025. Perché in quel giorno prima rompe i minimi del giorno precedente e poi rompe i massimi….la rottura dei massimi sarebbe stato il mio ingresso ma non lo fa.
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 2000
// --- PARAMÈTRES ---
MyStop = 100 // stop loss en points
MyTarget = 210 // take profit en points
OrarioChiusura = 220000 // heure de clôture le jour suivant (ex: 220000)
// --- RÉFÉRENCES JOURNALIÈRES ---
if opentime=010000 and (dayofweek <> 1 or (dayofweek<DAYOFWEEK[1])) THEN
IeriMax = DHigh(1) // plus haut d'hier
IeriMin = DLow(1) // plus bas d'hier
GoLong = 0
GoShort = 0
endif
// --- MÉMO DATE D'ENTRÉE ---
ONCE EntryDate = 0
IF OnMarket AND NOT OnMarket[1] THEN
EntryDate = Date
GoLong = 0
GoShort = 0
ENDIF
// --- Filtre jour de la semaine
IeriValide = (DayOfWeek[1] >= 1 AND DayOfWeek[1] <= 5)
// =============================
// LOGIQUE D'ENTRÉE
// =============================
If IeriValide AND High > IeriMax then
GoShort = 1
Endif
If GoShort = 1 AND NOT OnMarket THEN
SELLSHORT 1 CONTRACT AT IeriMin STOP
ENDIF
If IeriValide AND Low < IeriMin then
GoLong = 1
Endif
If GoLong = 1 AND NOT OnMarket THEN
BUY 1 CONTRACT AT IeriMax STOP
ENDIF
// =============================
// GESTION STOP & TARGET
// =============================
SET STOP PLOSS MyStop
SET TARGET PPROFIT MyTarget
// =============================
// SORTIE TEMPORELLE : JOUR SUIVANT
// =============================
// Si on est en position et qu'on n'est plus à la date d'entrée,
// alors on est au "jour suivant" : on ferme à partir de OrarioChiusura.
IF OnMarket AND Date <> EntryDate THEN
IF Time >= OrarioChiusura THEN
SELL AT MARKET // ferme une position longue si elle existe
EXITSHORT AT MARKET // ferme une position short si elle existe
ENDIF
ENDIF
Graphonprice IeriMax
Graphonprice IeriMin
Graph GoLong
Non è molto chiaro quali siano le condizioni. Ad esempio, per entrare LONG quale deve essere l’insieme delle condizioni?
LucaSBest ha risolto grazie a tutti .