sounParticipant
Junior
bonjour, je voudrais pouvoir avoir un screener de marché que je puisse lancer le soir en rentrant du travail, qui me donne les valeurs dont le prix a croisé a la hausse la moyenne mobile HORAIRE a 50 heures au cours de la journée sachant que cette moyenne mobile horaire est elle-meme superieure a la moyenne mobile horaire 100 heures et que le prix soit aussi superieur à la moyenne mobile journalière 50 jours.
merci pour votre aide. bonne journée
JSParticipant
Master
Salut, essaie ceux-ci…
(Utilisez une période d’une heure…)
TimeFrame(Daily)
Avg50D=Average[50](Close)//50 day average
TimeFrame(Default)
Avg50H=Average[50](Close)//50 hour average
Avg100H=Average[100](Close)//100 hour average
c1=Summation[24](Close crosses over Avg50H)=1//close crosses over 50 hour average (last 24 hours)
c2=Avg50H>Avg100H
c3=Avg100H>Avg50D
Screener[c1 and c2 and c3]
sounParticipant
Junior
bonjour le screener ne me retourne rien que ce soit sur europe ou us
merci bonne journée
Voici une autre version que je viens de tester :
// =====================================================
// SCREENER : Croisement haussier du prix au-dessus
// de la MM50 horaire, avec filtres MM100H et MM50J
// =====================================================
// --- BLOC HORAIRE (1 heure) ---
TIMEFRAME(1 hour)
mm50h = Average[50](close)
mm100h = Average[100](close)
if intradaybarindex=0 or day<>day[1] then
crossedToday = 0
endif
IF close[1]< mm50h[1] and close> mm50h THEN
crossedToday = 1
ENDIF
// MM50H est au-dessus de la MM100H (barre courante horaire)
mm50hAboveMm100h = mm50h > mm100h
// --- BLOC JOURNALIER ---
TIMEFRAME(1 day)
mm50j = Average[50](close)
// Prix supérieur à la MM50 journalière
priceAboveMm50j = close > mm50j
// --- CONDITION FINALE ---
condition = crossedToday AND mm50hAboveMm100h AND priceAboveMm50j
SCREENER[condition](close AS "Prix", mm50h AS "MM50H", mm100h AS "MM100H", mm50j AS "MM50J")
JSParticipant
Master
Utilisez-vous une période d’une heure… ?
sounParticipant
Junior
merci pour votre retour
en fait le programme de js marchait aussi a la ligne c3= il avait mis avg au lieu de close
sur un autre petit programme j ai le meme type de probleme, il s execute en une heure et je ne peux pas (et veux pas ) etre present toutes les heures pour executer le sceener. vous serait il possible que ce screener s execute en fin de journée et me donne toute les valeurs qui ont été detecté au cours de la journée.
merci a vous bonne journée.
timeframe(1hour)
indicator1 = CALL "Range96 system high"
c1 = (indicator1 = 0 and indicator1[1] = 1)
c2 = close >= LinearRegression[50]
timeframe(daily)
indic01 = ExponentialAverage[96](close)+ 1.1*std[96](close)
c01 = ( close >= indic01)
screener[c01 and c1 and c2]
avec cette version, tu pourras obtenir en fin de journée toutes les actions qui ont eu au moins une fois la condition c1 valide: (non testé)
timeframe(1hour)
indicator1 = CALL "Range96 system high"
c1 = (indicator1 = 0 and indicator1[1] = 1)
if intradaybarindex=0 or day<>day[1] then
crossedToday = 0
endif
IF c1 THEN
crossedToday = 1
ENDIF
c2 = close >= LinearRegression[50]
timeframe(daily)
indic01 = ExponentialAverage[96](close)+ 1.1*std[96](close)
c01 = ( close >= indic01)
screener[c01 and c1 and c2 and crossedtoday]
sounParticipant
Junior
merci pour ton retour
le sceener me retourne toujours que les valeurs c1 validé de la derniere heure.
Le problème est que le signal est systématiquement renvoyé sur la bougie actuelle.
Définissez une heure après laquelle vous rentrez du travail, allumez votre ordinateur et consultez l’outil de sélection (dans mon exemple, 18h00).
Ce code vérifiera, pour chaque barre après cette heure, si la condition s’est produite au cours de la journée.
Si vous laissez la plateforme ouverte de 18h00 à 23h00, vous recevrez le signal en continu :
timeframe(daily)
indic01 = ExponentialAverage[96](close)+ 1.1*std[96](close)
c01 = ( close >= indic01)
//
timeframe(1hour)
myStartTime = 180000
indicator1 = CALL "Range96 system high"
c1 = (indicator1 = 0 and indicator1[1] = 1)
if intradaybarindex=0 or day<>day[1] then
crossedToday = 0
endif
IF c1 THEN
crossedToday = 1
ENDIF
c2 = close >= LinearRegression[50]
Cond = c01 and c1 and c2 and crossedtoday
//
IF Time >= myStartTime THEN
Result = 0
FOR i = 0 TO BarIndex - 1
IF Cond[i] THEN
Result = 1
break
ENDIF
IF Day <> Day[1] THEN
break
ENDIF
NEXT
ENDIF
screener[Result]