Bonjour,
Je travaille sur l’écriture d’un code en multi time frame.
m3 et m15
Avec le code j’ai un signal de vente à 09h12 en m3 (ligne rouge horizontale dans l’ellipse)
le même signal sur le chandelier m15 (ligne rouge horizontale dans l’ellipse)
je voudrais ouvrir à à 09h12 une position short et le code ne l’exécute pas.
aucune ouverture de position
j’ai vérifié dans le code et je n’arrive pas à trouver d’ou vient l’erreur
je précise que dans le code le trading est autorisé à partir de 08h05
je joins le code et et les screens. Situation réelle du 06/01
Merci pour une réponse à ma demande
Cordialement
DEFPARAM CumulateOrders = false
DEFPARAM Preloadbars = 3000
// TAILLE DES POSITIONS
level = 3
// TARGET ET STOP
//tp = 60
sl = 25
// HORAIRES DE TRADING
TimeAchat = time >= 080500 and time < 190000
TimeVente = time >= 080500 and time < 190000
// SEUIL DE RENTABILITÉ
//startBreakeven = 10 // Target pour activation du Breakeven
//PointsToKeep = 2 // Target après activation du Breakeven
TIMEFRAME(15 minutes,updateonclose)
// INDICATEURS
// ANALYSE 10 DERNIERS CHANDELIERS (Haussier)
hh=highest[10](high)
//bullish breakout
if hh<>hh[1] then
hhbar=barindex
endif
// CONDITION POUR ACHAT
am15=close crosses over hh[1] and hhbar and TimeAchat
// ANALYSE 10 DERNIERS CHANDELIERS (Baissier)
ll=lowest[10](low)
//bearish breakout
if ll<>ll[1] then
llbar2=barindex
endif
// CONDITION POUR VENTE
vm15=close crosses under ll[1] and llbar2 and TimeVente
TIMEFRAME(default) // TIMEFRAME m3
// SEUIL DE RENTABILITÉ
startBreakeven = 24 // Target pour activation du Breakeven
PointsToKeep = 3 // Target après activation du Breakeven
// INDICATEURS
// ANALYSE 10 DERNIERS CHANDELIERS (Haussier)
hh3=highest[10](high)
//bullish breakout
if hh3<>hh3[1] then
hhbar3=barindex
endif
// CONDITION POUR ACHAT
am3=close crosses over hh3[1] and hhbar3 and TimeAchat
// ANALYSE 10 DERNIERS CHANDELIERS (Baissier)
ll3=lowest[10](low)
//bearish breakout
if ll3<>ll3[1] then
llbar3=barindex
endif
// CONDITION POUR VENTE
vm3=close crosses under ll3[1] and llbar3 and TimeVente
ACHAT = (am15 and am3)
VENTE = (vm15 and vm3)
// —- OUVERTURE DES ACHATS —-
IF achat and TimeAchat then
Buy level shares at market
//SET TARGET pPROFIT tp
SET STOP pLOSS sl
ENDIF
// Reset du breakevenLevel quand aucune transaction n’est sur le marché
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF
// Côté ACHETEUR
// TEST si le prix a évolué favorablement de ” startBreakeven ”
IF longonmarket and close-tradeprice(1)>=startBreakeven*pipsize Then
breakevenLevel = tradeprice(1)+PointsToKeep*pipsize
ENDIF
// Placer le nouveau ” ORDRE STOP” sur le Marché à breakevenLevel
IF breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
// — CONDITION POUR SORTIR DES ACHATS —
if longonmarket then
if vm3 then
sell at market
endif
endif
// —- OUVERTURE DES VENTES —-
// SEUIL DE RENTABILITÉ
startBreakeven1 = 6 // Target pour activation du Breakeven
PointsToKeep1 = 2 // Target après activation du Breakeven
// Reset du breakevenLevel quand aucune transaction n’est sur le marché
IF NOT ONMARKET THEN
breakevenLevel1=0
ENDIF
IF vente and TimeVente THEN
Sellshort level shares at market
//SET TARGET pPROFIT tp
SET STOP pLOSS sl
ENDIF
// Côté VENDEUR
// TEST si le prix a évolué favorablement de ” startBreakeven ”
IF shortonmarket and tradeprice(1)-close>startBreakeven1*pipsize Then
breakevenLevel1 = tradeprice(1)-PointsToKeep1*pipsize
ENDIF
// Placer le nouveau ” ORDRE STOP” sur le Marché à breakevenLevel
IF breakevenLevel1>0 THEN
SELL AT breakevenLevel1 STOP
ENDIF
// — CONDITION POUR SORTIR DES VENTES —
if shortonmarket then
if am3 then
exitshort at market
endif
endif
>> Pour la clarté des messages sur les forums de ProRealCode, merci d’utiliser le bouton “insert PRT code” pour séparer la partie texte de la partie code, merci ! <<
🙂
Votre transaction sera enregistrée à 09h15, car les conditions sur le UT de 15 minutes sont évaluées à la fermeture de ce chandelier.
Si vous souhaitez entrer pendant que le chandelier de 15 minutes se forme, remplacez UPDATEONCLOSE par DEFAULT à la ligne 20.
Soyez averti que les événements évalués lors de la construction d’une barre ne peuvent pas toujours être confirmés à sa fermeture.
Bonjour Robertogozzi,
merci pour la remarque sur le code, je vais noter ça dans mes tablettes pour l’avenir
concernant la suite de votre réponse, je vais regarder ça
En fait je progresse doucement, je n’ai pas encore une grande expérience en codage
merci pour votre réponse
cordialement
Je reviens sur le sujet,
en fait en DEFAULT, je ne suis plus en multi timeframe ??
en fait mon signal se produit en m3 à 8h57, et j’ai un second signal avec le chandelier 09h12
j’ai en m 15 le signal sur le chandelier de 09h00
dois je comprendre que l’ouverture du trade tel que j’ai codé
se fait avec le 2ème signal de m3 ??
Ce que souhaite te faire comprendre Roberto, c’est qu’avec un UPDATEONCLOSE, l’information du timeframe supérieur sera mis à jour uniquement à sa clôture, donc à la fermeture de la prochaine barre de 15-minutes dans ton cas.
Hors si tu souhaites obtenir des informations intra-bar, c’est à dire à l’intérieur du timeframe 15-minutes, il faut enlever UPDATEONCLOSE. Evidemment, si tu regardes l’historique, tu vois l’information d’une barre clôturée et donc pas ce qui s’est passé à l’intérieur, et cela peut avoir un impact différent sur la stratégie telle que tu l’as pensé.
Donc si tu récupères une info de l’UT 15-minutes, à 15h48, avec UPDATEONCLOSE, ce sera la valeur de clôture de 15h45 qui sera utilisée.
Je l’explique ici en français : Première approche sur le multi timeframe avec ProRealTime
Merci Nicolas,
je vais continuer à relire la documentation
peut-être à bientôt
Cordialement