Cherry on the cake
//-------------------------------------------------------------------------
// Code principal : FXB dailyMTF ts
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Main code : fxb
short TS
//-------------------------------------------------------------------------
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 213000
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 090000
timeEnterBefore = time >= noEntryBeforeTime
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 173000
timeEnterAfter = time < noEntryAfterTime
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
//Variables
ENTREELONG=12090//Seuil de déclenchement pour entrer à l'achat sur le marché
ENTREESHORT=12080//Seuil de déclenchement pour entrer à la vente sur le marché
SEUIL=10//Gain minimum déclenchant la protection de la position
SL=10//Stop Loss INITIAL
TP=20//Target Profit
PROTECT=0.20//Nouveau Stop correspondant au % de gain acquis à sauver
once lock=0//lock bloquera le stop de protection
once TOBESAVED=0
//1 day TF (get the trend of the daily chart)
timeframe(daily,updateonclose)//could be "1 hour", "15 minutes"...
MOYENNE=ExponentialAverage[50](close)
BULLTREND=close>MOYENNE
BEARTREND=close<MOYENNE
//"default" timeframe (the timeframe you will lauch/"drive" the strategy on)
timeframe(default)
// Conditions pour ouvrir une position acheteuse
IF BULLTREND and close<ENTREELONG and NOT longonmarket and timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and STRATEGYPROFIT=0 THEN
BUY 1 CONTRACT
AT ENTREELONG STOP
SELL
AT ENTREELONG+TP LIMIT
SELL
AT ENTREELONG-SL STOP
ENDIF
IF longonmarket then
SELL
AT TRADEPRICE+TP LIMIT
if close>=(TRADEPRICE+SEUIL) or lock=1 then
lock=1
TOBESAVED=(CLOSE-TRADEPRICE)*PROTECT
if TOBESAVED<TOBESAVED[1] then
TOBESAVED=TOBESAVED[1]
endif
SELL
AT TRADEPRICE+TOBESAVED STOP
else
SELL
AT TRADEPRICE-SL STOP
ENDIF
endif
// Conditions pour ouvrir une position vendeuse
IF BEARTREND and close>ENTREESHORT and NOT shortonmarket and timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and STRATEGYPROFIT=0 THEN
SELLSHORT 1 CONTRACT
AT ENTREESHORT STOP
EXITSHORT
AT ENTREESHORT-TP LIMIT
EXITSHORT
AT ENTREESHORT+SL STOP
ENDIF
IF shortonmarket then
EXITSHORT
AT TRADEPRICE-TP LIMIT
if close<=(TRADEPRICE-SEUIL) or lock=1 then
lock=1
TOBESAVED=(TRADEPRICE-CLOSE)*PROTECT
if TOBESAVED<TOBESAVED[1] then
TOBESAVED=TOBESAVED[1]
endif
EXITSHORT
AT TRADEPRICE-(TOBESAVED) STOP
else
EXITSHORT
AT TRADEPRICE+SL STOP
ENDIF
endif