PereParticipant
Veteran
@Mark, perhaps you are running a version lower tan V6. I’m running the V6, and do not have, like Alco, any trade since 9th of January (closed on 11th).
Hi guys,
some of you asked me for a parameter setup for large account size (100k) for the Pathfinder DAX 4H V6.
I strictly recommend to start in life trading with a smaller account size such as 10k. The backtest looks very promising but the project status is still experimental and when you followed the topic discussions there are still some open points such as differences between backtest und life trading results.
In my opinion a good approach for a 100k account would be to trade the DAX mini 5Euro contract instead of DAX mini 1Euro. Enclosed is a version for an 100k account and DAX mini 5Euro. I can’t recommend to trade Pathfinder with a full DAX 25Euro future.
Best, Reiner
Hi
I see this right that tomorrow the soybeans could go long?
Michi
For information:
CAC 40 4h V5B2 is short in live trading.
Michi
ALEModerator
Master
Hello REINER hello GUYS
Good news.. TRAILING STOP OF PATHFINDER WORKS WELL
I’m testing a modified version of pathfinder since 6.12.2016, I’ve call it Pathfinder DAX 4H V5B2_EASY. it is not the best like V6, so you can continue to use v6 version, but I want to tell you that this morning it had closed a short position by tailing stop!..
Please check the attached picture, and the code above to check the short position of january=1 and the triling stop of v6!!
FTSE 4Hr (Long) closed today at 7238.7 for a loss.
FTSE 4Hr short opened shortly after at 7239.2 and currently running.
Hello
I have same trades in live account for FTSE (Long and then short)
But if I run the backtest, there is only the short one..The long (with the loss..) is not there..
AlcoParticipant
Senior
I had a problem yesterday with FTSE v5b2 version.
It gave a lot of rejected orders. It gave an error -> The minimum order size was 2 for ftse. The orders where rejected at 17:00. System was automatically stopped.
So I thought the multiplier was 1 for this period. But when I looked back at the code it has 2 or >.
This was the code I was using.
//-------------------------------------------------------------------------
// Main code : Pathfinder FTSE 4H V5B2
//-------------------------------------------------------------------------
// 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 5 Beta 2
// Instrument: FTSE mini 4H, 9-22 CET, 2 points spread, account size 10.000 Euro
// 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 = 7
// define filter parameter
ONCE periodLongMA = 230
ONCE periodShortMA = 10
// define position and money management parameter
ONCE positionSize = 1
Capital = 10000
Risk = 5 // in %
equity = Capital + StrategyProfit
maxRisk = round(equity * Risk / 100)
ONCE stopLossLong = 4 // in %
ONCE stopLossShort = 2.75 // in %
ONCE takeProfitLong = 3 // in %
ONCE takeProfitShort = 2 // in %
maxPositionSizeLong = MAX(15, abs(round(maxRisk / (close * stopLossLong / 100) / PointValue) * pipsize))
maxPositionSizeShort = MAX(5, abs(round(maxRisk / (close * stopLossShort / 100) / PointValue) * pipsize))
ONCE trailingStartLong = 1.75 // in %
ONCE trailingStartShort = 0.75 // in %
ONCE trailingStepLong = 0.2 // in %
ONCE trailingStepShort = 0.3 // in %
ONCE maxCandlesLongWithProfit = 40 // take long profit latest after 40 candles
ONCE maxCandlesShortWithProfit = 30 // take short profit latest after 30 candles
ONCE maxCandlesLongWithoutProfit = 40 // limit long loss latest after 40 candles 30
ONCE maxCandlesShortWithoutProfit = 9 // limit short loss latest after 9 candles
// define saisonal position multiplier >0 - long / <0 - short / 0 no trade
ONCE January = 3
ONCE February = 3
ONCE March = 2
ONCE April = 2
ONCE May = 2
ONCE June = 2
ONCE July = 2
ONCE August = 3
ONCE September = -2
ONCE October = 2
ONCE November = 3
ONCE December = 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 <> 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
// set saisonal pattern
IF CurrentMonth = 1 THEN
saisonalPatternMultiplier = January
ELSIF CurrentMonth = 2 THEN
saisonalPatternMultiplier = February
ELSIF CurrentMonth = 3 THEN
saisonalPatternMultiplier = March
ELSIF CurrentMonth = 4 THEN
saisonalPatternMultiplier = April
ELSIF CurrentMonth = 5 THEN
saisonalPatternMultiplier = May
ELSIF CurrentMonth = 6 THEN
saisonalPatternMultiplier = June
ELSIF CurrentMonth = 7 THEN
saisonalPatternMultiplier = July
ELSIF CurrentMonth = 8 THEN
saisonalPatternMultiplier = August
ELSIF CurrentMonth = 9 THEN
saisonalPatternMultiplier = September
ELSIF CurrentMonth = 10 THEN
saisonalPatternMultiplier = October
ELSIF CurrentMonth = 11 THEN
saisonalPatternMultiplier = November
ELSIF CurrentMonth = 12 THEN
saisonalPatternMultiplier = December
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 ( (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
IF LONGONMARKET THEN
posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
ELSIF SHORTONMARKET THEN
posProfit = (((positionprice - close) * pointvalue) * countofposition) / pipsize
ENDIF
m1 = posProfit > 0 AND (BarIndex - TradeIndex) >= maxCandlesLongWithProfit
m2 = posProfit > 0 AND (BarIndex - TradeIndex) >= maxCandlesShortWithProfit
m3 = posProfit < 0 AND (BarIndex - TradeIndex) >= maxCandlesLongWithoutProfit
m4 = posProfit < 0 AND (BarIndex - TradeIndex) >= 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
// trailing stop function
trailingStartLongInPoints = tradeprice(1) * trailingStartLong / 100
trailingStartShortInPoints = tradeprice(1) * trailingStartShort / 100
trailingStepLongInPoints = tradeprice(1) * trailingStepLong / 100
trailingStepShortInPoints = tradeprice(1) * trailingStepShort / 100
// reset the stoploss value
IF NOT ONMARKET THEN
newSL = 0
ENDIF
// manage long positions
IF LONGONMARKET THEN
// first move (breakeven)
IF newSL = 0 AND close - tradeprice(1) >= trailingStartLongInPoints * pipsize THEN
newSL = tradeprice(1) + trailingStepLongInPoints * pipsize
ENDIF
// next moves
IF newSL > 0 AND close - newSL >= trailingStepLongInPoints * pipsize THEN
newSL = newSL + trailingStepLongInPoints * pipsize
ENDIF
ENDIF
// manage short positions
IF SHORTONMARKET THEN
// first move (breakeven)
IF newSL = 0 AND tradeprice(1) - close >= trailingStartShortInPoints * pipsize THEN
newSL = tradeprice(1) - trailingStepShortInPoints * pipsize
ENDIF
// next moves
IF newSL > 0 AND newSL - close >= trailingStepShortInPoints * pipsize THEN
newSL = newSL - trailingStepShortInPoints * pipsize
ENDIF
ENDIF
// stop order to exit the positions
IF newSL > 0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
// superordinate stop and take profit
SET STOP %LOSS stopLoss
SET TARGET %PROFIT takeProfit
ENDIF
Could someone explain why it stopped?
Thanks,
Alco
@Alco
Use FTSE 100 CASH (-). Don’t use GBL_EUR. It worked for me.
AlcoParticipant
Senior
@mamio
i used ftse 100 cash €1 mini. So that shouldnt be the problem.
wp01Participant
Master
@Alco.
I see in your screen at pending orders: 4. Are these related to the FTSE 100?
Because it looks like it had conflicting orders.
In this link from PRT you can read when it is automaticly stopped.
https://tc.md.it-finance.com/IGIndex/conditions_of_execution_of_automatic_trading_systems.phtml?appletkey=0f4645986f0939c64351deb312e24d41707f01cf1289bab993e6d909593396a4&locale=en_GB
The minimum size is 1 for this contract, so that can not be the problem.
AlcoParticipant
Senior
@wp
No those 4 pending orders are not related to ftse.
(dutch) Wel raar, wanneer ik de muis op het driehoekje houd staat er dat er minimaal 2 contracten nodig zijn voor deze markt…. Heel vreemd.
wp01Participant
Master
@Alco
The quickest way how i check what the minimum contractsize is i go in IG tradingplatform to that CFD, i click on it and create an order or ticket and than you see in under “grootte” (also Dutch :-))
the minimum contracts. I tried to find it on the website from IG, unfortunate without luck.
When you click all the FTSE 100 you see that they all show one contract. But i see your screen. So that’s weird……
wp01Participant
Master
@Alco
But on the picture you show i can not read the last line, but it shows something like canceled 2 @ 7.545 at the same time.
So it does look like something is conflicting.