Forum Replies Created
-
AuthorPosts
-
DeanWaltonMember
ahhh – ok now i understand. Thanks.
DeanWaltonMemberThanks craig. Sorry put the -1 after brackets (old bullcharts code way still adapting to amibroker).
So if you just put score = rank; what does this do in terms of testing and exploration?? I get good results with score = rank; and shocking results when I use score = ref(rank,-1);
I can’t work out why. I used score = rank; by accident as amibroker accepts it as valid code – So I ran the backtest and leaped off my chair with results. Only to check it against monthly one I did to see it was different. Hence my questions.
DeanWaltonMemberok – but what is the difference between score = rank; and score = ref(rank),-1; – this is the bit i’m not getting. the ref(rank),-1 shifts the data one week (in this case) doesn’t it? So, is this comparing the rank this week to last week?
if score = rank; – what is amibroker comparing? Is it just taking the first x number each week (say 5 stocks) no comparing to the previous week????
DeanWaltonMemberWill try some more tomorrow. I tried RSI and using highs and closes greater than they were x days ago. Neither added anything. Will check index code. The results were from diff test with slightly different parameters I was playing with today to see how it compared to your suggestion from 1998-2021. I’ll sleep on it and hope something hits me. Thanks.
DeanWaltonMemberCode resend. Hopefully this will produce no error messages. This is abridged version of the code i sent before. Thanks for your patience.
#include_once “FormulasNorgate DataNorgate Data Functions.afl”
SetBarsRequired(sbrAll,0);
_SECTION_BEGIN (“Index Filter”);
//=================================================================================
//Index Filter
//=================================================================================
IndexSwitch = ParamToggle(“Index Filter”,”On|Off”,0);
//IndexCode = ParamStr(“Index Code”,”$XSO.au”);//$XAO.au for ASX
SetForeign(“$XsO.au”);//(“$XAO.au”)//Super trend
IndATR_Multiplier= Param(“ATR Multiplier”,3.5,3.5,5,0.25);
IndATR_Period= Param(“ATR Period”,30,10,30,5);getATR=ATR(IndATR_Period);
basic_UpperBand=0;
basic_LowerBand=0;
final_UpperBand=0;
final_LowerBand=0;
superTrend=0;//Super Trend Calculations
for( i = IndATR_Period; i < BarCount; i++ )
{
basic_UpperBand(High + Low)/2) + IndATR_Multiplier*getATR;
basic_LowerBand(High + Low)/2) – IndATR_Multiplier*getATR;
final_UpperBand = Iif( ((basic_UpperBandfinal_UpperBand[i-1])), (basic_UpperBand ), final_UpperBand[i-1] );
final_LowerBand = Iif( ((basic_LowerBand>final_LowerBand[i-1]) OR (Close[i-1]), final_LowerBand[i-1] ); superTrend = superTrend = Iif((((superTrend[i-1])==(final_UpperBand[i-1])) AND ((Close)<=(final_UpperBand))),(final_UpperBand),Iif((((superTrend[i-1])==(final_UpperBand[i-1])) AND ((Close)>=(final_UpperBand))),(final_LowerBand),Iif((((superTrend[i-1])==(final_LowerBand[i-1])) AND ((Close)>=(final_LowerBand))),(final_LowerBand),Iif((((superTrend[i-1])==(final_LowerBand[i-1])) AND ((Close)<=(final_LowerBand))),(final_UpperBand),0))));
}
IndexFilterUp = C > SuperTrend;
IndexFilterDn = C < SuperTrend;
IndexFilter = IIf(IndexSwitch,1,IndexFilterUp);
RestorePriceArrays();//=================================================================================
_SECTION_END();_SECTION_BEGIN(“Historical Data Base Testing”);
//=================================================================================
//Historical Data Base Testing
//=================================================================================
ASXList = ParamList(“ASX Historical Watchlist:”,”1: Off|2: ASX 20|3: ASX 50|4: ASX 100|5: ASX 200|6: ASX 300|7: ASX All Ordinaries|8: ASX Small Ordinaries|9: ASX Emerging Companies|10: Excluding ASX 300|11: In XAO but Exc ASX 100|12: Exc XAO”,0);HistDB = 1;
if(ASXList == “1: Off”) HistDB = 1;
if(ASXList == “2: ASX 20”) HistDB = NorgateIndexConstituentTimeSeries(“$XTL”);
if(ASXList == “3: ASX 50”) HistDB = NorgateIndexConstituentTimeSeries(“$XFL”);
if(ASXList == “4: ASX 100”) HistDB = NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “5: ASX 200”) HistDB = NorgateIndexConstituentTimeSeries(“$XJO”);
if(ASXList == “6: ASX 300”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”);
if(ASXList == “7: ASX All Ordinaries”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”);
if(ASXList == “8: ASX Small Ordinaries”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”) AND NOT NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “9: ASX Emerging Companies”) HistDB = NorgateIndexConstituentTimeSeries(“$XEC”);
if(ASXList == “10: Excluding ASX 300”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”)==0;
if(ASXList == “11: In XAO but Exc ASX 100”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”) AND NOT NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “12: Exc XAO”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”)==0;//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Optional Price & Volume Filters”);
//=================================================================================
//Optional Price & Volume Filters
//=================================================================================
CloseToggle = ParamToggle(“Close Price”,”Adjusted|Unadjusted”,1);
CloseArray = IIf(CloseToggle,NorgateOriginalCloseTimeSeries(),Close);VolumeToggle = ParamToggle(“Volume”,”Adjusted|Unadjusted”,1);
VolumeArray = IIf(VolumeToggle,NorgateOriginalVolumeTimeSeries(),Volume);
//
PriceTog = ParamToggle(“Price Filter”,”Off|On”,1);
MinSP = Param(“Minimum Share Price – $”,0.50,0,1,.1);
MaxSP = Param(“Maximum Share Price – $”,5,5,20,1);
MinMaxSP = CloseArray >= MinSP AND CloseArray <= MaxSP;
PriceFilt = IIf(PriceTog,MinMaxSP,1);
//
TOTog = ParamToggle(“Turnover Filter”,”Off|On”,1);
MinTO = Param(“Minimum Turnover – $”,400000,150000,1000000,50000);
AverageVolume = EMA(VolumeArray,Param(“VolMA”,20,5,30,5));
TOFilter = (CloseArray * AverageVolume) > MinTO;
TOFilt = IIf(TOTog,TOFilter,1);//
VolTog = ParamToggle(“Volume Filter”,”Off|On”,0);
MinVol = Param(“Minimum Volume”,300000,0,10000000,1000);
VolFilter = VolumeArray > MinVol;
VolFilt = IIf(VolTog,VolFilter,1);
//
AveVolTog = ParamToggle(“Average Volume Filter”,”Off|On”,0);
MinAveVol = Param(“Minimum Average Volume”,500000,0,10000000,1000);
AVPer = Param(“Volume EMA”,10,1,200,1);
AveVol = EMA(VolumeArray,AVPer) > MinAveVol;
AveVolFilt = IIf(AveVolTog,AveVol,1);
//
OptFilt = PriceFilt AND TOFilt AND VolFilt AND AveVolFilt;
//=================================================================================
_SECTION_END();_SECTION_BEGIN (“System Parameters”);
//=================================================================================
//Parameters
//=================================================================================//ROC Lookback x 1
ROCLookBack = Param(“ROCLookBack”,125,50,300,5);
MyROC = ROC(Close,ROCLookBack);
ROCLB = MyROC;//ROC Lookback x 2
ROCLB1 = Param(“ROCLookBack1”,60,10,100,10);
MyROCLB1 = ROC(Close,ROCLB1);
ROCLB2 = PAram(“ROCLookBack2”,110,100,200,10);
MyROCLB2 = ROC(Close,ROCLB2);
ROCFinal1 = MyROCLB1 + MyROCLB2;//=================================================================================
//Entry & Exit
//=================================================================================
Rank = ROCFinal1;
Cond1 = Rank > Optimize(“RankVal”,50,0,150,5);OnLastTwoBarsOfDelistedSecurity = BarIndex() >= (LastValue(BarIndex()) -1) AND !IsNull(GetFnData(“DelistingDate”));
LESetup = Cond1 AND IndexFilter AND HistDB AND OptFilt; //Any additional buy rules apart from the rotational criteria – e.g index, price filters etc
LE = Ref(LESetUp,-1) AND NOT OnLastTwoBarsOfDelistedSecurity;//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Backtesting Options”);
//=================================================================================
//Backtesting Parameters
//=================================================================================
posqty = Param(“# Positions”,5,10,10,5);
Eq = Param(“Initial Equity”,100000,1,10000000,1);
SetOption(“InitialEquity”,Eq);
SetOption(“MaxOpenPositions”,posqty);
SetOption(“UsePrevBarEquityForPosSizing”,True);
SetOption(“AccountMargin”,100);
SetTradeDelays(0,0,0,0);SetBacktestMode(backtestRotational);
EOM = Month() != Ref(Month(),-1);//First trading day of the month
score = Ref(Rank,-1);//score is the rotational criteria
Score = IIf(LE,score,0);
PositionScore = IIf(Year()>=1985 AND EOM,Score,scoreNoRotate);MinRank = Param(“Min Rank”,11,6,20,1);
SetOption(“WorstRankHeld”,MinRank);
//
SetPositionSize(100/posqty,spsPercentOfEquity);//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Exploration”);
//=================================================================================
//Exploration
//=================================================================================
Filter = LESetup;AddColumn(Rank,”Rank”,1.4);
//=================================================================================
_SECTION_END();DeanWaltonMemberHi Glen,
I have tried many things and i’m getting the same results which means my logic is flawed and/or I’m missing something and/or i’m stuck in a cycle or all of the above.
I have attached some results (finally worked out how to add attachment!!) from what i have done today but they aren’t very different to before. Period thru 2011-2015 would be tough to go thru. I’ll try and send my code again in an attachment to see if that helps as i have lots of stuff in the code which I have for learning purposes and i think that might not have transferred when i posted it in the forum properly which is why you might have got errors. At least i may have worked that bit out! I’ll try to resend it without all the fluff i keep in it for learning purposes.
DeanWaltonMemberThanks Glen. Will have a play tomorrow. Not sure what errors you are getting as it backtests ok for me but will double check as best I can. I’ve done most of those things already but will try again. Increasing the max positions really diminished the returns.
So my process was as follows:
1. Run optimisation using ST with single ROC to see where the sweet spot is in combo. Default positions was 5 (same for asx100 system). This produced a ROC from 100-120 as good results so took middle 110.
2. Then using single ROC add a second ROC to see if adding a second ROC adds anything – find sweet spot – range from memory was 50-80 was ok so took 60.
3. Then look at dual ROC combined value to see if higher value makes a difference – 0-50 were similar but maxDD was better at 50.
4. Price filter and volume filters helped reduce MaxDD with minor changes to CAGR.I’m very conscious of not over optimising but I’m watching for numbers falling off cliffs as Nick suggested to me. Maybe my process is flawed.
DeanWaltonMemberYes once you take out the asx100 current and past it will take out any stock that was in any other index prior to being in asx100. Think I am misunderstanding what Glen was doing. Thanks Nick.
DeanWaltonMemberThanks Glen. I was doing it the same as you had posted so if i use 8:ASX Small Ordinaries in ASX Historical Watchlist and use S&P ASX Small Ordinaries Current and PAst in Filter box my results are CAGR 29% and MaxDD 22.7%. If I change the Filter box to include ASX300 Current & Past and Exclude ASX100 Current & Past I get CAGR 19.65% and MAxDD 30.7%. I just don’t understand the reason for the difference unless data is wrong.
System uses SuperTrend MAcro Filter (something i have used for a long time)
Dual ROC
Stock Price filter
Volume Filter
Dual ROC > 50
Mind you all of this was created using the Small Ords Current and PAst as Filter not ASX300 exc ASX100.I have no problem sharing my code (it maybe messy as i like to have the original lines to help me as coding is not my strong point) – here it is:
#include_once “FormulasNorgate DataNorgate Data Functions.afl”
SetBarsRequired(sbrAll,0);
_SECTION_BEGIN (“Index Filter”);
//=================================================================================
//Index Filter
//=================================================================================
IndexSwitch = ParamToggle(“Index Filter”,”On|Off”,0);SetForeign(“$XsO.au”);//(“$XAO.au”)
//Super trend
IndATR_Multiplier= Param(“ATR Multiplier”,3.5,3.5,5,0.25);
IndATR_Period= Param(“ATR Period”,30,10,30,5);getATR=ATR(IndATR_Period);
basic_UpperBand=0;
basic_LowerBand=0;
final_UpperBand=0;
final_LowerBand=0;
superTrend=0;//Super Trend Calculations
for( i = IndATR_Period; i < BarCount; i++ )
{
basic_UpperBand(High + Low)/2) + IndATR_Multiplier*getATR;
basic_LowerBand(High + Low)/2) – IndATR_Multiplier*getATR;
final_UpperBand = Iif( ((basic_UpperBandfinal_UpperBand[i-1])), (basic_UpperBand ), final_UpperBand[i-1] );
final_LowerBand = Iif( ((basic_LowerBand>final_LowerBand[i-1]) OR (Close[i-1]), final_LowerBand[i-1] ); superTrend = superTrend = Iif((((superTrend[i-1])==(final_UpperBand[i-1])) AND ((Close)<=(final_UpperBand))),(final_UpperBand),Iif((((superTrend[i-1])==(final_UpperBand[i-1])) AND ((Close)>=(final_UpperBand))),(final_LowerBand),Iif((((superTrend[i-1])==(final_LowerBand[i-1])) AND ((Close)>=(final_LowerBand))),(final_LowerBand),Iif((((superTrend[i-1])==(final_LowerBand[i-1])) AND ((Close)<=(final_LowerBand))),(final_UpperBand),0))));
}
IndexFilterUp = C > SuperTrend;
IndexFilterDn = C < SuperTrend;
IndexFilter = IIf(IndexSwitch,1,IndexFilterUp);
RestorePriceArrays();/*
“Foreign Ticker Symbol”;
IndexCode = ParamStr(“Index Code”,”$XAO.au”);//$XAO.au for ASXIndex = Foreign(IndexCode,”C”);
MAPeriod = Optimize(“Index Filter MA Period”,55,40,200,10);
IndexFilterUp = Index > EMA(Index,MAPeriod);
IndexFilterDn = Index < EMA(Index,MAPeriod);
IndexFilter = IIf(IndexSwitch,1,IndexFilterUp);
*/
//=================================================================================
_SECTION_END();_SECTION_BEGIN(“Historical Data Base Testing”);
//=================================================================================
//Historical Data Base Testing
//=================================================================================
ASXList = ParamList(“ASX Historical Watchlist:”,”1: Off|2: ASX 20|3: ASX 50|4: ASX 100|5: ASX 200|6: ASX 300|7: ASX All Ordinaries|8: ASX Small Ordinaries|9: ASX Emerging Companies|10: Excluding ASX 300|11: In XAO but Exc ASX 100|12: Exc XAO”,0);HistDB = 1;
if(ASXList == “1: Off”) HistDB = 1;
if(ASXList == “2: ASX 20”) HistDB = NorgateIndexConstituentTimeSeries(“$XTL”);
if(ASXList == “3: ASX 50”) HistDB = NorgateIndexConstituentTimeSeries(“$XFL”);
if(ASXList == “4: ASX 100”) HistDB = NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “5: ASX 200”) HistDB = NorgateIndexConstituentTimeSeries(“$XJO”);
if(ASXList == “6: ASX 300”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”);
if(ASXList == “7: ASX All Ordinaries”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”);
if(ASXList == “8: ASX Small Ordinaries”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”) AND NOT NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “9: ASX Emerging Companies”) HistDB = NorgateIndexConstituentTimeSeries(“$XEC”);
if(ASXList == “10: Excluding ASX 300”) HistDB = NorgateIndexConstituentTimeSeries(“$XKO”)==0;
if(ASXList == “11: In XAO but Exc ASX 100”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”) AND NOT NorgateIndexConstituentTimeSeries(“$XTO”);
if(ASXList == “12: Exc XAO”) HistDB = NorgateIndexConstituentTimeSeries(“$XAO”)==0;//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Optional Price & Volume Filters”);
//=================================================================================
//Optional Price & Volume Filters
//=================================================================================
CloseToggle = ParamToggle(“Close Price”,”Adjusted|Unadjusted”,1);
CloseArray = IIf(CloseToggle,NorgateOriginalCloseTimeSeries(),Close);VolumeToggle = ParamToggle(“Volume”,”Adjusted|Unadjusted”,1);
VolumeArray = IIf(VolumeToggle,NorgateOriginalVolumeTimeSeries(),Volume);
//
PriceTog = ParamToggle(“Price Filter”,”Off|On”,1);
MinSP = Param(“Minimum Share Price – $”,0.50,0,1,.1);
MaxSP = Param(“Maximum Share Price – $”,5,5,20,1);
MinMaxSP = CloseArray >= MinSP AND CloseArray <= MaxSP;
PriceFilt = IIf(PriceTog,MinMaxSP,1);
//
TOTog = ParamToggle(“Turnover Filter”,”Off|On”,1);
MinTO = Param(“Minimum Turnover – $”,400000,150000,1000000,50000);
AverageVolume = EMA(VolumeArray,Param(“VolMA”,20,5,30,5));
TOFilter = (CloseArray * AverageVolume) > MinTO;
TOFilt = IIf(TOTog,TOFilter,1);//
VolTog = ParamToggle(“Volume Filter”,”Off|On”,0);
MinVol = Param(“Minimum Volume”,300000,0,10000000,1000);
VolFilter = VolumeArray > MinVol;
VolFilt = IIf(VolTog,VolFilter,1);
//
AveVolTog = ParamToggle(“Average Volume Filter”,”Off|On”,0);
MinAveVol = Param(“Minimum Average Volume”,500000,0,10000000,1000);
AVPer = Param(“Volume EMA”,10,1,200,1);
AveVol = EMA(VolumeArray,AVPer) > MinAveVol;
AveVolFilt = IIf(AveVolTog,AveVol,1);
//
OptFilt = PriceFilt AND TOFilt AND VolFilt AND AveVolFilt;
//=================================================================================
_SECTION_END();_SECTION_BEGIN (“System Parameters”);
//=================================================================================
//Parameters
//=================================================================================
MAPeriod = Param(“MA Period”,250,10,300,5);
MyMAPer = EMA(Close,MAPeriod);
MAFilt = C > MyMAPer;//ROC Lookback x 1
ROCLookBack = Optimize(“ROCLookBack”,125,50,300,5);
MyROC = ROC(Close,ROCLookBack);
ROCATR = MyROC;//MyROC/ATR(15);//ROC Lookback x 2
ROCLB1 = Param(“ROCLookBack1”,60,50,100,5);
MyROCLB1 = ROC(Close,ROCLB1);
ROCLB2 = Param(“ROCLookBack2”,110,100,200,10);
MyROCLB2 = ROC(Close,ROCLB2);
ROCFinal1 = MyROCLB1 + MyROCLB2;
//ROCFinal2 = ROC(C,63)*.4+ROC(C,126)*.2+ROC(C,189)*.2+ROC(C,252)*.2;//RSI
//RSIPer = Param(“Periods”, 20, 10, 30, 1 );
//MyRSI = RSI(RSIPer);//=================================================================================
//Entry & Exit
//=================================================================================
Rank = ROCFinal1; //Criteria for rotation
Cond1 = Rank > Param(“RankVal”,50,0,150,5); //prevents short tradesOnLastTwoBarsOfDelistedSecurity = BarIndex() >= (LastValue(BarIndex()) -1) AND !IsNull(GetFnData(“DelistingDate”));
LESetup = Cond1 AND IndexFilter AND HistDB AND OptFilt; //Any additional buy rules apart from the rotational criteria – e.g index, price filters etc
LE = Ref(LESetUp,-1) AND NOT OnLastTwoBarsOfDelistedSecurity;//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Backtesting Options”);
//=================================================================================
//Backtesting Parameters
//=================================================================================
posqty = Param(“# Positions”,5,10,10,5);
Eq = Param(“Initial Equity”,100000,1,10000000,1);
SetOption(“InitialEquity”,Eq);
SetOption(“MaxOpenPositions”,posqty);
SetOption(“UsePrevBarEquityForPosSizing”,True);
SetOption(“AccountMargin”,100);
SetTradeDelays(0,0,0,0);SetBacktestMode(backtestRotational);
EOM = Month() != Ref(Month(),-1);//First trading day of the month
score = Ref(Rank,-1);//score is the rotational criteria
Score = IIf(LE,score,0);
PositionScore = IIf(Year()>=1985 AND EOM,Score,scoreNoRotate);MinRank = Param(“Min Rank”,10,11,30,1);
SetOption(“WorstRankHeld”,MinRank);
//
SetPositionSize(100/posqty,spsPercentOfEquity);//=================================================================================
_SECTION_END();_SECTION_BEGIN (“Exploration”);
//=================================================================================
//Exploration
//=================================================================================
Filter = LESetup;AddColumn(Rank,”Rank”,1.4);
//=================================================================================
_SECTION_END();DeanWaltonMemberHi Glen – I am presuming you are LeTour Trader from Twitter. I’m very new to Twitter – thought i better see what Nick posts if different to fb). I have loads of questions in relation to your Small Ords system. As I said on twitter – I am very curious about it, frustrated that i cant produce the same returns and envious that you have some super results here.
I’m a little confused with your posts around Norgate and Small Ords. As this is what I am using when I do my backtesting. Are you saying that the ASX Small Ords provided by Norgate is not accurate??I ran some backtests on Small Ords and have a system that produces 29% return with 22.5% DD from 2005-2021. But it does super well in 2005-2007. If I run it from 2008-2021 returns are only 18% with DD of >30%. But now I am wondering if this is accurate at all if Norgate data is not right for Small Ords.
I can replicate results from 2/1/20-16/9/21 from your results but that is the only one. All the rest I am miles under. Wondering if this is because of the data???
I’m not really following what you are coding with respect to XKO and XTO but if I use the ASX300 in my scan and in Filter inc ASX300 current and past and exclude ASX100 current and past for backtesting (which is what i think you are doing but not sure) – my results from 2005-2021 drop to CAGR 19.6% and 30.7% MaxDD.
So I’m very confused as these should all be the same as using the Small Ords current and past – as i understand the index.
I must be missing something.
Reading parts of your journal and couple of others – I’m a long way behind and i started the course in Feb 2021. I’m yet to start trading my systems and still confused with using Amibroker and coding and lots of anxiety and self doubt. Trying not to compare myself to others but hard not too. Not good for my self doubt and anxiety. However, I need to learn so need to try and push myself to become more uncomfortable – this post has taken me 2 hours to type and edited about 100 times!!
DeanWaltonMemberFinally found the post – thanks Trent. All understood. I’ve never traded a MR system before so i am focussing on getting the Superfund systems right and then i will come back to MR. Still need to get comfortable with the thought of buying in dips and buying lower – not something i have ever done before.
DeanWaltonMemberTrent Rothall wrote:Hi Dean hopefully you saw my post in another thread on this question!Hi Trent – no i haven’t seen anything – will try and search
DeanWaltonMemberHi Trent,
I’m a newbie still going through program and was wanting to do a short term system on ASX. You seem to be the only one doing it?? I was thinking something along the lines of Double 7’s strategy or 2 Period RSI (Larry Connors style) or even Dr Alex Elder’s Impulse system. Was concerned some say edge has gone from these systems (on google) but you seem to be making something work on ASX.
Would you be willing to offer any guidance please?DeanWaltonMemberHaving that discussion with myself now Julian.
DeanWaltonMemberDo you know how Trent does it if he is successful? I would be thinking of holding for 5-10 days perhaps so not 1 day type systems. Not sure if that makes any difference.
-
AuthorPosts