Dear All,
I think it is the good timing to share with you the following strategy.
“Dax Short 15′” is nothing really complicated but works fairly.
- TF 15′
- Instr. DAX
- Tested on “tick by tick”
- Tested with 200k bars.
- 1 pt spread.
- WF hasn’t been done.
Kindly note that I am not the coder of the century 😉 however I’ll be delighted to help as much as I can.
Thank you.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
//------------------------------------------------------------------------- // Code principal : Dax Short 15' //------------------------------------------------------------------------- //----------------------------------- // Code principal : Dax Short 15' //------------------------------------------------------------------------- // Définition des paramètres du code // From Inertia //Last optimization 26/07/2017 DEFPARAM Preloadbars = 3000 DEFPARAM CumulateOrders = False DEFPARAM FLATBEFORE = 091500 DEFPARAM FLATAFTER = 213000 noEntryBeforeTime = 091500 timeEnterBefore = time >= noEntryBeforeTime noEntryAfterTime = 213000 timeEnterAfter = time < noEntryAfterTime daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 3 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0 REM Variables ordersize = 1 mafilter = 2000 // 2000 TS = 30 // 30 SL = 45 // 45 TP = 110 // 110 //MACD settings a = 12 // 12 b = 26 // 26 c = 9 // 9 // Conditions pour ouvrir une position en vente à découvert indicator1 = MACD[a,b,c](close) c1 = (indicator1 CROSSES UNDER 0) indicator2 = MACDline[a,b,c](close) c2 = (indicator2 < 0) indicator3 = ExponentialAverage[mafilter](close) c3 = (close < indicator3) indicator4 = ExponentialAverage[mafilter](close) indicator5 = ExponentialAverage[mafilter](close) c4 = (indicator4 < indicator5[1]) IF (c1 AND c2 AND c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN SELLSHORT ordersize CONTRACT AT MARKET ENDIF //trailing stop trailingstop = TS//Best 30 //resetting variables when no trades are on market if not onmarket then MINPRICE = close priceexit = 0 endif //case SHORT order if shortonmarket then MINPRICE = MIN(MINPRICE,close) //saving the MFE of the current trade if tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop then priceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price level endif endif //exit on trailing stop price levels if onmarket and priceexit>0 then EXITSHORT AT priceexit STOP SELL AT priceexit STOP endif SET STOP Ploss SL Set Target PProfit TP |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :
Filename : download the ITF files
How to import ITF files into ProRealTime platform?
PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
what timezone? not getting similar results 🙂
GMT +1
Hi Inertia ,
first of all , congrats for the good strategy
one questions : the average 2000 in the code Time frame 15min, rapresent the Average 100 in Daily Time frame ?
thanks
Thank you JR1976.
It was not meant to be a conversion from a daily TF but mostly a “larger and round” filter for this 15’TF.
However, i did an excel breakdown as attached (fyi)…
Thank you Inertia.
Can you think if it’s possible to applicate this strategy (Long Only) ?
Sorry lysan2, the exact one for long only doesn’t work well.
Perhaps, you may have to look with roughly the same trigger for entries but on a smaller TF to possibly find an edge.
thx.
Long version… not very good
//DEFPARAM Preloadbars = 3000
DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 090000
DEFPARAM FLATAFTER = 210000
noEntryBeforeTime = 090000
timeEnterBefore = time >= noEntryBeforeTime
noEntryAfterTime = 213000
timeEnterAfter = time 2)
indicator3 = ExponentialAverage[mafilter](close)
c3 = (close > indicator3)
indicator4 = ExponentialAverage[mafilter](close)
indicator5 = ExponentialAverage[mafilter](close)
c4 = (indicator4 > indicator5[1])
IF (c1 AND c2 AND c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
buy ordersize CONTRACT AT MARKET
ENDIF
//trailing stop
trailingstop = TS//Best 30
//resetting variables when no trades are on market
if not onmarket then
MINPRICE = close
priceexit = 1
endif
//case long order
if longonmarket then
MINPRICE = MIN(MINPRICE,close) //saving the MFE of the current trade
if tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop then
priceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price level
endif
endif
//FINE LONG
//exit on trailing stop price levels
if onmarket and priceexit>0 then
EXITSHORT AT priceexit STOP
SELL AT priceexit STOP
endif
SET STOP Ploss SL
Set Target PProfit TP
@Andreag76
Thank you but your code is broken.
Variables are missing and the trailing stop, if long only should be MAXPRICE instead of MINPRICE.
However, yes the long version on a TF 15′ doesn’t work well enough.
Kind regards,
Hi,
What do you think about this ?
//————————————————————————-
// Code principal : Dax Short 15′
//————————————————————————-
//———————————–
// Code principal : Dax Short 15′
//————————————————————————-
// Définition des paramètres du code
// From Inertia
//Last optimization 26/07/2017
DEFPARAM Preloadbars = 3000
DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 100000
DEFPARAM FLATAFTER = 180000
noEntryBeforeTime = 100000
timeEnterBefore = time >= noEntryBeforeTime
noEntryAfterTime = 213000
timeEnterAfter = time < noEntryAfterTime
daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 3 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
REM Variables
// Taille des positions
REINV = 1
LEVIER = 5
IF REINV = 0 THEN
N = 1
ELSIF REINV = 1 THEN
capital = 500 + strategyprofit
N = round(capital / 500)*LEVIER
ENDIF
ordersize = N
mafilter = 250 // 2000
TS = 30 // 30
SL = 45 // 45
TP = 110 // 110
//MACD settings
a = 12 // 12
b = 26 // 26
c = 9 // 9
// Conditions pour ouvrir une position en vente à découvert
indicator1 = MACD[a,b,c](close)
c1 = (indicator1 CROSSES UNDER 0)
indicator2 = MACDline[a,b,c](close)
c2 = (indicator2 < 0)
indicator3 = ExponentialAverage[mafilter](close)
c3 = (close < indicator3)
indicator4 = ExponentialAverage[mafilter](close)
indicator5 = ExponentialAverage[mafilter](close)
c4 = (indicator4 =trailingstop*pointsize then //if the MFE is higher than the trailingstop then
priceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price level
endif
endif
//exit on trailing stop price levels
if onmarket and priceexit>0 then
EXITSHORT AT priceexit STOP
SELL AT priceexit STOP
endif
SET STOP Ploss SL
Set Target PProfit TP
Thank you.
Sorry, there is a bug on line 52…
//————————————————————————-
// Code principal : Dax Short 15′
//————————————————————————-
//———————————–
// Code principal : Dax Short 15′
//————————————————————————-
// Définition des paramètres du code
// From Inertia
//Last optimization 26/07/2017
DEFPARAM Preloadbars = 3000
DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 100000
DEFPARAM FLATAFTER = 180000
noEntryBeforeTime = 100000
timeEnterBefore = time >= noEntryBeforeTime
noEntryAfterTime = 213000
timeEnterAfter = time < noEntryAfterTime
daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 3 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
REM Variables
// Taille des positions
REINV = 1
LEVIER = 3
IF REINV = 0 THEN
N = 1
ELSIF REINV = 1 THEN
capital = 500 + strategyprofit
n = (capital / 500)*LEVIER
N = round(n)
ENDIF
ordersize = N
mafilter = 2000 // 2000
TS = 30 // 30
SL = 45 // 45
TP = 110 // 110
//MACD settings
a = 12 // 12
b = 26 // 26
c = 9 // 9
// Conditions pour ouvrir une position en vente à découvert
indicator1 = MACD[a,b,c](close)
c1 = (indicator1 CROSSES UNDER 0)
indicator2 = MACDline[a,b,c](close)
c2 = (indicator2 < 0)
indicator3 = ExponentialAverage[mafilter](close)
c3 = (close < indicator3)
indicator4 = ExponentialAverage[mafilter](close)
indicator5 = ExponentialAverage[mafilter](close)
c4 = (indicator4 =trailingstop*pointsize then //if the MFE is higher than the trailingstop then
priceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price level
endif
endif
//exit on trailing stop price levels
if onmarket and priceexit>0 then
EXITSHORT AT priceexit STOP
SELL AT priceexit STOP
endif
SET STOP Ploss SL
Set Target PProfit TP
Bonjour Inertia, cette sais-tu si cette stratégie fonctionne sur un compte IG à “risque limité” ? Car je crois qu’il y a une restriction sur le fonctionnement des trailing stops. Mais peut-être que ton code contourne cette restriction de par sa conception ? Merci.
Bonjour tecknozic…. Je ne sais pas… Désolé.
Bonne chance 😉
This system is the only one running on my PC, which i didn´t developed my myself. My forcast was correct, the system makes money !! Gratulation, you understand the DAX.
Hi! Is this system still working good? Anyone has it in the live account? It looks great.
Thank you for sharing
Proformence will be beter with other starting hours and closing hours @Inertia