Check of previous candles
Forums › ProRealTime English forum › ProOrder support › Check of previous candles
- This topic has 31 replies, 3 voices, and was last updated 5 years ago by Marc.
-
-
07/25/2018 at 11:29 AM #76693
Hi together,
I’ve tried to fix the code a littlebit while using HA-Candles instead of normal Japanese Candle-Sticks and to expand days from non trading day monday to friday.
There is a bug within the code and nothing happens when starting backtest.
Can somebody try to check where I made the mistake?Thank you in advance
Marc
HA-Version123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108DEFPARAM CumulateOrders = falseEntryOpen = (open[1]+close[1])/2 //alternativ closeEntryClose = (open+close+low+high)/4 //alternativ openTIMEFRAME (Monthly, updateonclose)IF EntryClose > EntryOpen THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIFTIMEFRAME (Weekly, updateonclose)IF EntryClose > EntryOpen THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIFTIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF EntryClose > EntryOpen THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 3 AND Not OnMarket AND AlReadyTraded = 0 THEN //WednesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 4 AND Not OnMarket AND AlReadyTraded = 0 THEN //ThursdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 5 AND Not OnMarket AND AlReadyTraded = 0 THEN //FridayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 OR 2 OR 3 OR 4 OR 5 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIF07/25/2018 at 11:52 AM #76696This the code I adapted to non-MTF platforms
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889DEFPARAM CumulateOrders = false//////////////////////////////////////////////////////////////////////////////////// code to simulate accessing the MONTHLY TF// to retrieve previous month's OPEN & CLOSE////TIMEFRAME (Monthly, updateonclose)FOR i = 1 TO 31IF OpenMonth[i] <> OpenMonth[i - 1] THENMyMonthClose = close[i] //Last Day of previous Month (month IDs differ)FOR j = i + 1 TO i + 31IF OpenMonth[j] <> OpenMonth[j - 1] THENMyMonthOpen = close[j - 1] //First Day of previous Month (month IDs differ)BREAKENDIFNEXTBREAKENDIFNEXTIF MyMonthClose > MyMonthOpen THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIF//////////////////////////////////////////////////////////////////////////////////// code to simulate accessing the WEEKLY TF// to retrieve previous week's OPEN & CLOSE////TIMEFRAME (Weekly, updateonclose)FOR i = 1 TO 13IF OpenDayOfWeek[i] = 5 THENMyWeekClose = close[i] //When day 5 closes, the WEEK is also closingMyWeekOpen = close[i + 5] //5 days before it was SUNDAY, thus week's openingBREAKENDIFNEXTIF MyWeekClose > MyWeekOpen THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIF//TIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF close > open THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayOfWeekIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIF07/25/2018 at 12:06 PM #76698As for your previous code on top of the page, when changing code I suggest that you change 1 feature at a time and when THAT feature works go on to add another one, otherwise you (and everybody else) will be lost!
If you want to add days after Tuesday lines 58-59 (for Wednesday) should be replaced by
12GoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[2] = -1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[2] = 1 AND MyDay[1] = 1 AND MyDay = 1if you still want to check the same trend is upgoing.
Moreover, my fault, line 24 of my original code and your line 25 should be replaced by
1ThisDay = OpenDayOfWeek07/25/2018 at 1:04 PM #76706Hi Roberto,
this is the amended Code which contains the addition of ‘AND MyDay = -1’ & ‘AND MyDay = 1’ for all other days than Monday and Tuesday.
Amendment contains also the syntax ‘ThisDay = OpenDayOfWeek’Amended Code123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109DEFPARAM CumulateOrders = falseEntryOpen = (open[1]+close[1])/2 //alternativ closeEntryClose = (open+close+low+high)/4 //alternativ openTIMEFRAME (Monthly, updateonclose)IF EntryClose > EntryOpen THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIFTIMEFRAME (Weekly, updateonclose)IF EntryClose > EntryOpen THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIFTIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF EntryClose > EntryOpen THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayOfWeekIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 3 AND Not OnMarket AND AlReadyTraded = 0 THEN //WednesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 4 AND Not OnMarket AND AlReadyTraded = 0 THEN //ThursdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 5 AND Not OnMarket AND AlReadyTraded = 0 THEN //FridayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = Max(high,close) //alternativ highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = Min(low,close) //alternativ lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 OR 2 OR 3 OR 4 OR 5 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIF07/25/2018 at 1:17 PM #76708It’s still looking a little bit wrong in it’s structure…I used first code:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110DEFPARAM CumulateOrders = falseTIMEFRAME (Monthly, updateonclose)IF close > open THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIFTIMEFRAME (Weekly, updateonclose)IF close > open THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIFTIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF close > open THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayofWeekIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 3 AND Not OnMarket AND AlReadyTraded = 0 THEN //WednesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 4 AND Not OnMarket AND AlReadyTraded = 0 THEN //ThursdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 5 AND Not OnMarket AND AlReadyTraded = 0 THEN //FridayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIF07/25/2018 at 1:58 PM #76716As you add more days you’ll have to add further references to past instancesc of MyDay, thus MyDay, MyDay[1], MyDay[2],…
Read https://www.prorealcode.com/topic/check-of-previous-candles/page/2/#post-76698.
07/26/2018 at 10:41 AM #7678107/26/2018 at 2:27 PM #76806Amended Code
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108TIMEFRAME (Monthly, updateonclose)IF close > open THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIFTIMEFRAME (Weekly, updateonclose)IF close > open THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIFTIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF close > open THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayofWeekIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 3 AND Not OnMarket AND AlReadyTraded = 0 THEN //WednesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 4 AND Not OnMarket AND AlReadyTraded = 0 THEN //ThursdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1 AND MyDay[4] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1 AND MyDay[4] = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 5 AND Not OnMarket AND AlReadyTraded = 0 THEN //FridayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1 AND MyDay[4] = -1 AND MyDay[5] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1 AND MyDay[4] = 1 AND MyDay[5] = 1IF GoLong THENEntryPrice = highBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = lowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIF07/26/2018 at 2:34 PM #7680707/27/2018 at 9:18 AM #76860Hi together,
I’d like to receive some help again. Is it possible to change the value of close to heikin ashi close?
Is it correct to change close versus (open+close+low+high)/4 ?The same idea for open: instead of open i would change the code to (open[1]+close[1])/2
Then I need to calculate the high and low also in heikin ashi based calculation-system
Thank you very much for your help.
Marc07/27/2018 at 9:54 AM #76864There’s no instruction to deal with Heikin Ashi candles, when you want to reference them you’ll have to set them up like that
1234567891011IF BarIndex=0 THENxClose = (open+high+low+close)/4xOpen = openxHigh = highxLow = lowELSExClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endifthis code is ready AS IS, just reference xClose, xOpen, xHigh, xLow to get Heikin Ashi values.
Some prefer to use variable names with leading HA instead of X, you can change them as you like.
To deal with HA you may use the search box to find out what HEIKIN (or ASHI, or HA) returns.
07/27/2018 at 10:16 AM #7686707/27/2018 at 10:23 AM #76869Where can I set Barindex?
You do not need to set BARINDEX. It is the filing system for the bars on any chart. The first bar is BARINDEX =1 and the second is BARINDEX =2 and so on. If there are 10000 bars on your chart then the current bar is BARINDEX = 10000
07/30/2018 at 12:46 PM #77070Heres is the amended code:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114TIMEFRAME (Monthly, updateonclose)xClose = (open+high+low+close)/4xOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)IF (open+high+low+close)/4 > (xOpen[1]+xClose[1])/2 THENMyMonth = 1 //BULLishELSEMyMonth = -1 //BEARishENDIFTIMEFRAME (Weekly, updateonclose)IF (open+high+low+close)/4 > (xOpen[1]+xClose[1])/2 THENMyWeek = 1 //BULLishELSEMyWeek = -1 //BEARishENDIFTIMEFRAME (Daily, updateonclose)ONCE AlreadyTraded = 0IF (open+high+low+close)/4 > (xOpen[1]+xClose[1])/2 THENMyDay = 1 //BULLishELSEMyDay = -1 //BEARishENDIFThisDay = OpenDayofWeekIF ThisDay = 1 AND Not OnMarket AND AlReadyTraded = 0 THEN //MondayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay = 1IF GoLong THENEntryPrice = xHighBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = xLowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 2 AND Not OnMarket AND AlReadyTraded = 0 THEN //TuesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1IF GoLong THENEntryPrice = xHighBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = xLowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 3 AND Not OnMarket AND AlReadyTraded = 0 THEN //WednesdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1IF GoLong THENEntryPrice = xHighBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = xLowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 4 AND Not OnMarket AND AlReadyTraded = 0 THEN //ThursdayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1 AND MyDay[4] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1 AND MyDay[4] = 1IF GoLong THENEntryPrice = xHighBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = xLowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 5 AND Not OnMarket AND AlReadyTraded = 0 THEN //FridayGoLong = MyMonth = 1 AND MyWeek = 1 AND MyDay[1] = -1 AND MyDay[2] = -1 AND MyDay[3] = -1 AND MyDay[4] = -1 AND MyDay[5] = -1GoShort = MyMonth = -1 AND MyWeek = -1 AND MyDay[1] = 1 AND MyDay[2] = 1 AND MyDay[3] = 1 AND MyDay[4] = 1 AND MyDay[5] = 1IF GoLong THENEntryPrice = xHighBUY 1 CONTRACT AT EntryPrice LIMITELSIF GoShort THENEntryPrice = xLowSELLSHORT 1 CONTRACT AT EntryPrice LIMITENDIFSl = AverageTrueRange[2](close)Tp = SlSET Stop Loss SlSET Target Profit TpENDIFIF ThisDay = 1 AND Not OnMarket THENAlreadyTraded = 0ENDIFIF OnMarket THENAlreadyTraded = 1ENDIFI think this should be correct…
07/30/2018 at 1:47 PM #77077When testing this system with it’s new parameters continaing ha-calculation of candles the return is confusing, because it’s very negative and shows only a downside curve…Anybody there who is willing to test this and confirms this?
Rgds
Marc
-
AuthorPosts
Find exclusive trading pro-tools on