ZigZag PA Strategy V4.1 – code conversion request
Forums › ProRealTime English forum › ProBuilder support › ZigZag PA Strategy V4.1 – code conversion request
- This topic has 1 reply, 2 voices, and was last updated 4 years ago by Nicolas.
Viewing 2 posts - 1 through 2 (of 2 total)
-
-
09/29/2020 at 5:33 PM #145880123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244strategy(title='[STRATEGY][RS]ZigZag PA Strategy V4.1', shorttitle='S', overlay=true, pyramiding=0, initial_capital=100000, currency=currency.USD)useHA = input(false, title='Use Heikken Ashi Candles')useAltTF = input(true, title='Use Alt Timeframe')tf = input('60', title='Alt Timeframe')showPatterns = input(true, title='Show Patterns')showFib0000 = input(title='Display Fibonacci 0.000:', type=bool, defval=true)showFib0236 = input(title='Display Fibonacci 0.236:', type=bool, defval=true)showFib0382 = input(title='Display Fibonacci 0.382:', type=bool, defval=true)showFib0500 = input(title='Display Fibonacci 0.500:', type=bool, defval=true)showFib0618 = input(title='Display Fibonacci 0.618:', type=bool, defval=true)showFib0764 = input(title='Display Fibonacci 0.764:', type=bool, defval=true)showFib1000 = input(title='Display Fibonacci 1.000:', type=bool, defval=true)zigzag() =>_isUp = close >= open_isDown = close <= open_direction = _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1])_zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na_ticker = useHA ? heikenashi(tickerid) : tickeridsz = useAltTF ? (change(time(tf)) != 0 ? security(_ticker, tf, zigzag()) : na) : zigzag()plot(sz, title='zigzag', color=black, linewidth=2)// ||--- Pattern Recognition:x = valuewhen(sz, sz, 4)a = valuewhen(sz, sz, 3)b = valuewhen(sz, sz, 2)c = valuewhen(sz, sz, 1)d = valuewhen(sz, sz, 0)xab = (abs(b-a)/abs(x-a))xad = (abs(a-d)/abs(x-a))abc = (abs(b-c)/abs(a-b))bcd = (abs(c-d)/abs(b-c))// ||--> Functions:isBat(_mode)=>_xab = xab >= 0.382 and xab <= 0.5_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 1.618 and bcd <= 2.618_xad = xad <= 0.618 and xad <= 1.000 // 0.886_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAntiBat(_mode)=>_xab = xab >= 0.500 and xab <= 0.886 // 0.618_abc = abc >= 1.000 and abc <= 2.618 // 1.13 --> 2.618_bcd = bcd >= 1.618 and bcd <= 2.618 // 2.0 --> 2.618_xad = xad >= 0.886 and xad <= 1.000 // 1.13_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAltBat(_mode)=>_xab = xab <= 0.382_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 2.0 and bcd <= 3.618_xad = xad <= 1.13_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isButterfly(_mode)=>_xab = xab <= 0.786_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 1.618 and bcd <= 2.618_xad = xad >= 1.27 and xad <= 1.618_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAntiButterfly(_mode)=>_xab = xab >= 0.236 and xab <= 0.886 // 0.382 - 0.618_abc = abc >= 1.130 and abc <= 2.618 // 1.130 - 2.618_bcd = bcd >= 1.000 and bcd <= 1.382 // 1.27_xad = xad >= 0.500 and xad <= 0.886 // 0.618 - 0.786_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isABCD(_mode)=>_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 1.13 and bcd <= 2.618_abc and _bcd and (_mode == 1 ? d < c : d > c)isGartley(_mode)=>_xab = xab >= 0.5 and xab <= 0.618 // 0.618_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 1.13 and bcd <= 2.618_xad = xad >= 0.75 and xad <= 0.875 // 0.786_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAntiGartley(_mode)=>_xab = xab >= 0.500 and xab <= 0.886 // 0.618 -> 0.786_abc = abc >= 1.000 and abc <= 2.618 // 1.130 -> 2.618_bcd = bcd >= 1.500 and bcd <= 5.000 // 1.618_xad = xad >= 1.000 and xad <= 5.000 // 1.272_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isCrab(_mode)=>_xab = xab >= 0.500 and xab <= 0.875 // 0.886_abc = abc >= 0.382 and abc <= 0.886_bcd = bcd >= 2.000 and bcd <= 5.000 // 3.618_xad = xad >= 1.382 and xad <= 5.000 // 1.618_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAntiCrab(_mode)=>_xab = xab >= 0.250 and xab <= 0.500 // 0.276 -> 0.446_abc = abc >= 1.130 and abc <= 2.618 // 1.130 -> 2.618_bcd = bcd >= 1.618 and bcd <= 2.618 // 1.618 -> 2.618_xad = xad >= 0.500 and xad <= 0.750 // 0.618_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isShark(_mode)=>_xab = xab >= 0.500 and xab <= 0.875 // 0.5 --> 0.886_abc = abc >= 1.130 and abc <= 1.618 //_bcd = bcd >= 1.270 and bcd <= 2.240 //_xad = xad >= 0.886 and xad <= 1.130 // 0.886 --> 1.13_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isAntiShark(_mode)=>_xab = xab >= 0.382 and xab <= 0.875 // 0.446 --> 0.618_abc = abc >= 0.500 and abc <= 1.000 // 0.618 --> 0.886_bcd = bcd >= 1.250 and bcd <= 2.618 // 1.618 --> 2.618_xad = xad >= 0.500 and xad <= 1.250 // 1.130 --> 1.130_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)is5o(_mode)=>_xab = xab >= 1.13 and xab <= 1.618_abc = abc >= 1.618 and abc <= 2.24_bcd = bcd >= 0.5 and bcd <= 0.625 // 0.5_xad = xad >= 0.0 and xad <= 0.236 // negative?_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isWolf(_mode)=>_xab = xab >= 1.27 and xab <= 1.618_abc = abc >= 0 and abc <= 5_bcd = bcd >= 1.27 and bcd <= 1.618_xad = xad >= 0.0 and xad <= 5_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isHnS(_mode)=>_xab = xab >= 2.0 and xab <= 10_abc = abc >= 0.90 and abc <= 1.1_bcd = bcd >= 0.236 and bcd <= 0.88_xad = xad >= 0.90 and xad <= 1.1_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isConTria(_mode)=>_xab = xab >= 0.382 and xab <= 0.618_abc = abc >= 0.382 and abc <= 0.618_bcd = bcd >= 0.382 and bcd <= 0.618_xad = xad >= 0.236 and xad <= 0.764_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)isExpTria(_mode)=>_xab = xab >= 1.236 and xab <= 1.618_abc = abc >= 1.000 and abc <= 1.618_bcd = bcd >= 1.236 and bcd <= 2.000_xad = xad >= 2.000 and xad <= 2.236_xab and _abc and _bcd and _xad and (_mode == 1 ? d < c : d > c)plotshape(not showPatterns ? na : isABCD(-1) and not isABCD(-1)[1], text="\nAB=CD", title='Bear ABCD', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0, offset=-2)plotshape(not showPatterns ? na : isBat(-1) and not isBat(-1)[1], text="Bat", title='Bear Bat', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0, offset=-2)plotshape(not showPatterns ? na : isAntiBat(-1) and not isAntiBat(-1)[1], text="Anti Bat", title='Bear Anti Bat', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0, offset=-2)plotshape(not showPatterns ? na : isAltBat(-1) and not isAltBat(-1)[1], text="Alt Bat", title='Bear Alt Bat', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isButterfly(-1) and not isButterfly(-1)[1], text="Butterfly", title='Bear Butterfly', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isAntiButterfly(-1) and not isAntiButterfly(-1)[1], text="Anti Butterfly", title='Bear Anti Butterfly', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isGartley(-1) and not isGartley(-1)[1], text="Gartley", title='Bear Gartley', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isAntiGartley(-1) and not isAntiGartley(-1)[1], text="Anti Gartley", title='Bear Anti Gartley', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isCrab(-1) and not isCrab(-1)[1], text="Crab", title='Bear Crab', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isAntiCrab(-1) and not isAntiCrab(-1)[1], text="Anti Crab", title='Bear Anti Crab', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isShark(-1) and not isShark(-1)[1], text="Shark", title='Bear Shark', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isAntiShark(-1) and not isAntiShark(-1)[1], text="Anti Shark", title='Bear Anti Shark', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : is5o(-1) and not is5o(-1)[1], text="5-O", title='Bear 5-O', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isWolf(-1) and not isWolf(-1)[1], text="Wolf Wave", title='Bear Wolf Wave', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isHnS(-1) and not isHnS(-1)[1], text="Head and Shoulders", title='Bear Head and Shoulders', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isConTria(-1) and not isConTria(-1)[1], text="Contracting Triangle", title='Bear Contracting triangle', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isExpTria(-1) and not isExpTria(-1)[1], text="Expanding Triangle", title='Bear Expanding Triangle', style=shape.labeldown, color=maroon, textcolor=white, location=location.top, transp=0)plotshape(not showPatterns ? na : isABCD(1) and not isABCD(1)[1], text="AB=CD\n", title='Bull ABCD', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isBat(1) and not isBat(1)[1], text="Bat", title='Bull Bat', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAntiBat(1) and not isAntiBat(1)[1], text="Anti Bat", title='Bull Anti Bat', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAltBat(1) and not isAltBat(1)[1], text="Alt Bat", title='Bull Alt Bat', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isButterfly(1) and not isButterfly(1)[1], text="Butterfly", title='Bull Butterfly', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAntiButterfly(1) and not isAntiButterfly(1)[1], text="Anti Butterfly", title='Bull Anti Butterfly', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isGartley(1) and not isGartley(1)[1], text="Gartley", title='Bull Gartley', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAntiGartley(1) and not isAntiGartley(1)[1], text="Anti Gartley", title='Bull Anti Gartley', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isCrab(1) and not isCrab(1)[1], text="Crab", title='Bull Crab', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAntiCrab(1) and not isAntiCrab(1)[1], text="Anti Crab", title='Bull Anti Crab', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isShark(1) and not isShark(1)[1], text="Shark", title='Bull Shark', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isAntiShark(1) and not isAntiShark(1)[1], text="Anti Shark", title='Bull Anti Shark', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : is5o(1) and not is5o(1)[1], text="5-O", title='Bull 5-O', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isWolf(1) and not isWolf(1)[1], text="Wolf Wave", title='Bull Wolf Wave', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isHnS(1) and not isHnS(1)[1], text="Head and Shoulders", title='Bull Head and Shoulders', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isConTria(1) and not isConTria(1)[1], text="Contracting Triangle", title='Bull Contracting Triangle', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)plotshape(not showPatterns ? na : isExpTria(1) and not isExpTria(1)[1], text="Expanding Triangle", title='Bull Expanding Triangle', style=shape.labelup, color=green, textcolor=white, location=location.bottom, transp=0)//-------------------------------------------------------------------------------------------------------------------------------------------------------------fib_range = abs(d-c)fib_0000 = not showFib0000 ? na : d > c ? d-(fib_range*0.000):d+(fib_range*0.000)fib_0236 = not showFib0236 ? na : d > c ? d-(fib_range*0.236):d+(fib_range*0.236)fib_0382 = not showFib0382 ? na : d > c ? d-(fib_range*0.382):d+(fib_range*0.382)fib_0500 = not showFib0500 ? na : d > c ? d-(fib_range*0.500):d+(fib_range*0.500)fib_0618 = not showFib0618 ? na : d > c ? d-(fib_range*0.618):d+(fib_range*0.618)fib_0764 = not showFib0764 ? na : d > c ? d-(fib_range*0.764):d+(fib_range*0.764)fib_1000 = not showFib1000 ? na : d > c ? d-(fib_range*1.000):d+(fib_range*1.000)plot(title='Fib 0.000', series=fib_0000, color=fib_0000 != fib_0000[1] ? na : black)plot(title='Fib 0.236', series=fib_0236, color=fib_0236 != fib_0236[1] ? na : red)plot(title='Fib 0.382', series=fib_0382, color=fib_0382 != fib_0382[1] ? na : olive)plot(title='Fib 0.500', series=fib_0500, color=fib_0500 != fib_0500[1] ? na : lime)plot(title='Fib 0.618', series=fib_0618, color=fib_0618 != fib_0618[1] ? na : teal)plot(title='Fib 0.764', series=fib_0764, color=fib_0764 != fib_0764[1] ? na : blue)plot(title='Fib 1.000', series=fib_1000, color=fib_1000 != fib_1000[1] ? na : black)bgcolor(not useAltTF ? na : change(time(tf))!=0?black:na)f_last_fib(_rate)=>d > c ? d-(fib_range*_rate):d+(fib_range*_rate)target01_trade_size = input(title='Target 1 - Trade size:', type=float, defval=10000.00)target01_ew_rate = input(title='Target 1 - Fib. Rate to use for Entry Window:', type=float, defval=0.236)target01_tp_rate = input(title='Target 1 - Fib. Rate to use for TP:', type=float, defval=0.618)target01_sl_rate = input(title='Target 1 - Fib. Rate to use for SL:', type=float, defval=-0.236)target02_active = input(title='Target 2 - Active?', type=bool, defval=false)target02_trade_size = input(title='Target 2 - Trade size:', type=float, defval=10000.00)target02_ew_rate = input(title='Target 2 - Fib. Rate to use for Entry Window:', type=float, defval=0.236)target02_tp_rate = input(title='Target 2 - Fib. Rate to use for TP:', type=float, defval=1.618)target02_sl_rate = input(title='Target 2 - Fib. Rate to use for SL:', type=float, defval=-0.236)buy_patterns_00 = isABCD(1) or isBat(1) or isAltBat(1) or isButterfly(1) or isGartley(1) or isCrab(1) or isShark(1) or is5o(1) or isWolf(1) or isHnS(1) or isConTria(1) or isExpTria(1)buy_patterns_01 = isAntiBat(1) or isAntiButterfly(1) or isAntiGartley(1) or isAntiCrab(1) or isAntiShark(1)sel_patterns_00 = isABCD(-1) or isBat(-1) or isAltBat(-1) or isButterfly(-1) or isGartley(-1) or isCrab(-1) or isShark(-1) or is5o(-1) or isWolf(-1) or isHnS(-1) or isConTria(-1) or isExpTria(-1)sel_patterns_01 = isAntiBat(-1) or isAntiButterfly(-1) or isAntiGartley(-1) or isAntiCrab(-1) or isAntiShark(-1)target01_buy_entry = (buy_patterns_00 or buy_patterns_01) and close <= f_last_fib(target01_ew_rate)target01_buy_close = high >= f_last_fib(target01_tp_rate) or low <= f_last_fib(target01_sl_rate)target01_sel_entry = (sel_patterns_00 or sel_patterns_01) and close >= f_last_fib(target01_ew_rate)target01_sel_close = low <= f_last_fib(target01_tp_rate) or high >= f_last_fib(target01_sl_rate)strategy.entry('target01_buy', long=strategy.long, qty=target01_trade_size, comment='buy 01', when=target01_buy_entry)strategy.close('target01_buy', when=target01_buy_close)strategy.entry('target01_sell', long=strategy.short, qty=target01_trade_size, comment='sell 01', when=target01_sel_entry)strategy.close('target01_sell', when=target01_sel_close)target02_buy_entry = target02_active and (buy_patterns_00 or buy_patterns_01) and close <= f_last_fib(target02_ew_rate)target02_buy_close = target02_active and high >= f_last_fib(target02_tp_rate) or low <= f_last_fib(target02_sl_rate)target02_sel_entry = target02_active and (sel_patterns_00 or sel_patterns_01) and close >= f_last_fib(target02_ew_rate)target02_sel_close = target02_active and low <= f_last_fib(target02_tp_rate) or high >= f_last_fib(target02_sl_rate)strategy.entry('target02_buy', long=strategy.long, qty=target02_trade_size, comment='buy 02', when=target02_buy_entry)strategy.close('target02_buy', when=target02_buy_close)strategy.entry('target02_sell', long=strategy.short, qty=target02_trade_size, comment='sell 02', when=target02_sel_entry)strategy.close('target02_sell', when=target02_sel_close)
Can you please convert the above code to PRT? thanks in advance
10/01/2020 at 3:28 PM #146095Link to the converted version: https://www.prorealcode.com/topic/harmonic-patterns-zigzag-strategy-code-review/
-
AuthorPosts
Viewing 2 posts - 1 through 2 (of 2 total)
Find exclusive trading pro-tools on
Similar topics: