AlcoParticipant
Senior
Dax opened a short position at 11563 on live account.
@ALCO
Hi,
In demo account no. In demo account Pathfinder open short position on FTSE at 7135,9 today at 17.00. Thanks
AlcoParticipant
Senior
Which version do you run volpiemanuele?
I run dax 4h v6-1
Strange behaviour- signal line crossed under daily low between 13:00 and 17:00 so the short signal is good. However why it opened at 21:00 I don’t know. Also it didn’t open any short for me- though the signal line is 11566 and daily low is 11573 @17:00. I have no rejected or cancelled order in DAX trying to make a short position. If back tested DAX 4H V6 there is also no opening in short signal @17:00 or 21:00
Anyone Else?
@ALLCO
v6 and v6_small in demo account
Hi guys,
Dax 4H V6 is not supposed to open any position because january2 = 0.
My FTSE live account opened a position at 5 pm. My backtest opened the same position at 9pm, but timestamped 5pm, but that’s a normal behaviour – backtest open the position always next candle comparing to live.
So everything is OK I guess..
Opened short on demo DAX, version 3.
AlcoParticipant
Senior
@volpiemanuele
correct, But I changed it to 1. I forgot to mention that.
@ALCO
Correct, I have set january2=0
MarkParticipant
Senior
I also confirm open short positions on FTSE and DAX. I have to note that I set January2 = 1 instead of 0.
cftaParticipant
Senior
Hi Reiner,
Nice to see the progress you are making here. The exit in my Grid Step System works like this, PRT draws a curve of floating profit/loss and applies a bollinger bands to the profit curve, if the profit curve crosses below the lower bollinger band and floating profit is above the RR threshold the exit kicks in and all positions are closed (if RR set to 3 it will apply after 3 % floating profit is reached). Make sure to pay attention to the MA period and standard deviation. Here is the code;
defparam preloadbars = 10000
once RRreached = 0
//parameters
accountbalance = 10000 //account balance in money at strategy start
riskpercent = 1 //whole account risk in percent%
amount = 1 //lot amount to open each trade
rr = 0 //risk reward ratio (set to 0 disable this function)
//money management
liveaccountbalance = accountbalance+strategyprofit
moneyrisk = (liveaccountbalance*(riskpercent/100))
if onmarket then
onepointvaluebasket = pointvalue*countofposition
mindistancetoclose =(moneyrisk/onepointvaluebasket)*pipsize
endif
//floating profit
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
MAfloatingprofit = average[20](floatingprofit)
BBfloatingprofit = MAfloatingprofit - std[20](MAfloatingprofit)*2
//floating profit risk reward check
if rr>0 and floatingprofit>moneyrisk*rr then
RRreached=1
endif
//stoploss trigger when risk reward ratio is not met already
if onmarket and RRreached=0 then
SELL AT positionprice-mindistancetoclose STOP
endif
//stoploss trigger when risj reward ratio has been reached
if onmarket and RRreached=1 then
if floatingprofit crosses under BBfloatingprofit then
SELL AT MARKET
endif
SELL AT positionprice-mindistancetoclose STOP
endif
//resetting the risk reward reached variable
if not onmarket then
RRreached = 0
endif
defparam preloadbars = 10000
once RRreached = 0
//parameters
accountbalance = 10000 //account balance in money at strategy start
riskpercent = 1 //whole account risk in percent%
amount = 1 //lot amount to open each trade
rr = 2 //risk reward ratio (set to 0 disable this function)
//money management
liveaccountbalance = accountbalance+strategyprofit
moneyrisk = (liveaccountbalance*(riskpercent/100))
if onmarket then
onepointvaluebasket = pointvalue*countofposition
mindistancetoclose =(moneyrisk/onepointvaluebasket)*pipsize
endif
//floating profit
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
MAfloatingprofit = average[20](floatingprofit)
BBfloatingprofit = MAfloatingprofit - std[20](MAfloatingprofit)*2
//floating profit risk reward check
if rr>0 and floatingprofit>moneyrisk*rr then
RRreached=1
endif
//stoploss trigger when risk reward ratio is not met already
if onmarket and RRreached=0 then
EXITSHORT AT positionprice-mindistancetoclose STOP
endif
//stoploss trigger when risj reward ratio has been reached
if onmarket and RRreached=1 then
if floatingprofit crosses under BBfloatingprofit then
EXITSHORT AT MARKET
endif
EXITSHORT AT positionprice-mindistancetoclose STOP
endif
//resetting the risk reward reached variable
if not onmarket then
RRreached = 0
endif
Hi. In addition to the orginal CFTA code, I have combined it into pathfinder. I removed the original SL code, and replaced it with the BBExit function. It only has one move. When RR is reached it will go into the BBExit function. As I wrote before it is not as profitable as the original code, so there is definitely something to work with. Please note that I have renamed some of the original Pathfinder’s variables so it was easier to merge into the CFTA code.
// Pathfinder Trading System based on ProRealTime 10.2
// Breakout system triggered by previous daily, weekly and monthly high/low crossings with smart position management
// Version 7b1 Pathfinder BBExit
// Instrument: DAX mini 4H, 9-21 CET, 2 points spread, account size 10.000 Euro, from August 2010
// ProOrder code parameter
DEFPARAM CUMULATEORDERS = true // cumulate orders if not turned off
DEFPARAM PRELOADBARS = 10000
// define intraday trading window
ONCE startTime = 90000
ONCE endTime = 210000
// define instrument signalline with help of multiple smoothed averages
ONCE periodFirstMA = 5
ONCE periodSecondMA = 10
ONCE periodThirdMA = 3
// define filter parameter
ONCE periodLongMA = 300
ONCE periodShortMA = 50
// define position and money management parameter
ONCE positionSize = 1
ONCE RRreached = 0
accountbalance = 10000 //account balance in money at strategy start
riskpercent = 5 // in %
liveaccountbalance = accountbalance + StrategyProfit
moneyrisk = round(liveaccountbalance * riskpercent / 100)
rr = 0.088//x1//0.25 //risk reward ratio (set to 0 disable this function and run orginal pathfinder V6 cod)
//money management
liveaccountbalance = accountbalance+strategyprofit
moneyrisk = (liveaccountbalance*(riskpercent/100))
if onmarket then
onepointvaluebasket = pointvalue*countofposition
mindistancetoclose =(moneyrisk/onepointvaluebasket)*pipsize
endif
//floating profit
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
MAfloatingprofit = average[20](floatingprofit)
BBfloatingprofit = MAfloatingprofit - std[20](MAfloatingprofit)*2
ONCE stopLossLong = 5.5 // in %
ONCE stopLossShort = 3.25 // in %
ONCE takeProfitLong = 3.25 // in %
ONCE takeProfitShort = 3.25 // in %
maxPositionSizeLong = MAX(15, abs(round(moneyrisk / (close * stopLossLong / 100) / PointValue) * pipsize))
maxPositionSizeShort = MAX(15, abs(round(moneyrisk / (close * stopLossShort / 100) / PointValue) * pipsize))
ONCE maxCandlesLongWithProfit = 16 // take long profit latest after 16 candles
ONCE maxCandlesShortWithProfit = 15 // take short profit latest after 15 candles
ONCE maxCandlesLongWithoutProfit = 30 // limit long loss latest after 30 candles
ONCE maxCandlesShortWithoutProfit = 12 // limit short loss latest after 12 candles
// define saisonal position multiplier for each month 1-15 / 16-31 (>0 - long / <0 - short / 0 no trade)
ONCE January1 = 3
ONCE January2 = 0
ONCE February1 = 3
ONCE February2 = 3
ONCE March1 = 3
ONCE March2 = 2
ONCE April1 = 1
ONCE April2 = 3
ONCE May1 = 1
ONCE May2 = 1
ONCE June1 = 2
ONCE June2 = 2
ONCE July1 = 3
ONCE July2 = 1
ONCE August1 = 1
ONCE August2 = 1
ONCE September1 = 3
ONCE September2 = 0
ONCE October1 = 3
ONCE October2 = 2
ONCE November1 = 1
ONCE November2 = 3
ONCE December1 = 3
ONCE December2 = 2
// calculate daily high/low (include sunday values if available)
dailyHigh = DHigh(1)
dailyLow = DLow(1)
// calculate weekly high/low
If DayOfWeek < DayOfWeek[1] then
weeklyHigh = Highest[BarIndex - lastWeekBarIndex](dailyHigh)
lastWeekBarIndex = BarIndex
ENDIF
// calculate monthly high/low
If Month[1] <> Month[2] then
//If Month <> Month[1] then
monthlyHigh = Highest[BarIndex - lastMonthBarIndex](dailyHigh)
monthlyLow = Lowest[BarIndex - lastMonthBarIndex](dailyLow)
lastMonthBarIndex = BarIndex
ENDIF
// calculate instrument signalline with multiple smoothed averages
firstMA = WilderAverage[periodFirstMA](close)
secondMA = TimeSeriesAverage[periodSecondMA](firstMA)
signalline = TimeSeriesAverage[periodThirdMA](secondMA)
// save position before trading window is open
If Time < startTime then
startPositionLong = COUNTOFLONGSHARES
startPositionShort = COUNTOFSHORTSHARES
EndIF
// trade only in defined trading window
IF Time >= startTime AND Time <= endTime THEN
if rr>0 and floatingprofit>moneyrisk*rr then
RRreached=1
Endif
// set saisonal multiplier
currentDayOfTheMonth = Date - ((CurrentYear * 10000) + CurrentMonth * 100)
midOfMonth = 15
IF CurrentMonth = 1 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = January1
ELSE
saisonalPatternMultiplier = January2
ENDIF
ELSIF CurrentMonth = 2 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = February1
ELSE
saisonalPatternMultiplier = February2
ENDIF
ELSIF CurrentMonth = 3 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = March1
ELSE
saisonalPatternMultiplier = March2
ENDIF
ELSIF CurrentMonth = 4 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = April1
ELSE
saisonalPatternMultiplier = April2
ENDIF
ELSIF CurrentMonth = 5 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = May1
ELSE
saisonalPatternMultiplier = May2
ENDIF
ELSIF CurrentMonth = 6 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = June1
ELSE
saisonalPatternMultiplier = June2
ENDIF
ELSIF CurrentMonth = 7 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = July1
ELSE
saisonalPatternMultiplier = July2
ENDIF
ELSIF CurrentMonth = 8 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = August1
ELSE
saisonalPatternMultiplier = August2
ENDIF
ELSIF CurrentMonth = 9 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = September1
ELSE
saisonalPatternMultiplier = September2
ENDIF
ELSIF CurrentMonth = 10 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = October1
ELSE
saisonalPatternMultiplier = October2
ENDIF
ELSIF CurrentMonth = 11 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = November1
ELSE
saisonalPatternMultiplier = November2
ENDIF
ELSIF CurrentMonth = 12 THEN
IF currentDayOfTheMonth <= midOfMonth THEN
saisonalPatternMultiplier = December1
ELSE
saisonalPatternMultiplier = December2
ENDIF
ENDIF
// define trading filters
// 1. use fast and slow averages as filter because not every breakout is profitable
f1 = close > Average[periodLongMA](close)
f2 = close < Average[periodLongMA](close)
f3 = close > Average[periodShortMA](close)
// 2. check if position already reduced in trading window as additonal filter criteria
alreadyReducedLongPosition = COUNTOFLONGSHARES < startPositionLong
alreadyReducedShortPosition = COUNTOFSHORTSHARES < startPositionShort
// long position conditions
l1 = signalline CROSSES OVER monthlyHigh
l2 = signalline CROSSES OVER weeklyHigh
l3 = signalline CROSSES OVER dailyHigh
l4 = signalline CROSSES OVER monthlyLow
// short position conditions
s1 = signalline CROSSES UNDER monthlyHigh
s2 = signalline CROSSES UNDER dailyLow
// long entry with order cumulation
IF ( (l1 OR l4 OR l2 OR (l3 AND f2)) AND NOT alreadyReducedLongPosition) THEN
// check saisonal booster setup and max position size
IF saisonalPatternMultiplier > 0 THEN
IF (COUNTOFPOSITION + (positionSize * saisonalPatternMultiplier)) <= maxPositionSizeLong THEN
BUY positionSize * saisonalPatternMultiplier CONTRACT AT MARKET
ENDIF
ELSIF saisonalPatternMultiplier <> 0 THEN
IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeLong THEN
BUY positionSize CONTRACT AT MARKET
ENDIF
ENDIF
stopLoss = stopLossLong
takeProfit = takeProfitLong
ENDIF
// short entry without order cumulation
IF NOT SHORTONMARKET AND ( (s1 AND f3) OR (s2 AND f1) ) AND NOT alreadyReducedShortPosition THEN
// check saisonal booster setup and max position size
IF saisonalPatternMultiplier < 0 THEN
IF (COUNTOFPOSITION + (positionSize * ABS(saisonalPatternMultiplier))) <= maxPositionSizeShort THEN
SELLSHORT positionSize * ABS(saisonalPatternMultiplier) CONTRACT AT MARKET
ENDIF
ELSIF saisonalPatternMultiplier <> 0 THEN
IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeLong THEN
SELLSHORT positionSize CONTRACT AT MARKET
ENDIF
ENDIF
stopLoss = stopLossShort
takeProfit = takeProfitShort
ENDIF
// stop and profit management
posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
numberCandles = (BarIndex - TradeIndex)
m1 = posProfit > 0 AND numberCandles >= maxCandlesLongWithProfit
m2 = posProfit > 0 AND numberCandles >= maxCandlesShortWithProfit
m3 = posProfit < 0 AND numberCandles >= maxCandlesLongWithoutProfit
m4 = posProfit < 0 AND numberCandles >= maxCandlesShortWithoutProfit
// take profit after max candles
IF LONGONMARKET AND (m1 OR m3) THEN
SELL AT MARKET
ENDIF
IF SHORTONMARKET AND (m2 OR m4) THEN
EXITSHORT AT MARKET
ENDIF
// superordinate stop and take profit
SET STOP %LOSS stopLoss
SET TARGET %PROFIT takeProfit
//stoploss trigger when risk reward ratio has been reached
if onmarket and RRreached=1 then
if floatingprofit crosses under BBfloatingprofit then
SELL AT MARKET
EXITSHORT AT MARKET
endif
SELL AT positionprice-mindistancetoclose STOP
EXITSHORT AT positionprice-mindistancetoclose STOP
endif
//resetting the risk reward reached variable
if not onmarket then
RRreached = 0
endif
ENDIF
//graph posProfit COLOURED(0,0,255) AS "posProfit"
//graph breakeven COLOURED(255,0,0) AS "breakeven"//Aqua
Graph RRreached COLOURED(0,0,255) AS "RRReached"
Hi guys,
The Pathfinder DOW 4H V.6 has opened a long position today 01/25/2017 at 1:00 p.m., someone can confirm.
wp01Participant
Master
@Jesus
Yes i can confirm the long position in the DOW 4H V6 today 25th. of January at 1:00 p.m.
Regards,
Patrick