need help adding reverse code to open-system
Forums › ProRealTime English forum › ProOrder support › need help adding reverse code to open-system
- This topic has 4 replies, 3 voices, and was last updated 4 years ago by Nicolas.
-
-
12/06/2019 at 10:57 PM #114375
hi, could someone please help me add code to my strategy.
Right now the system takes a pos in direction when price moved x points from open.
I want the system to reverse if it goes the other way the same x points.
Example, price opens at 1500, price goes to 1506, system goes long, when price hits 1494 i want it to close the long and reverse to short
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233//-------------------------------------------------------------------------// Main code : Open OMX NY opt 5m MED MFE 6p//-------------------------------------------------------------------------//-------------------------------------------------------------------------// Main Code : Straddle Dayopen V2.0//-------------------------------------------------------------------------// Test On DAX 30 Cash 10 Minute Timeframe 200k bars or from 1/1/2015// Common RulesDefparam Cumulateorders = falseDefparam Preloadbars = 1000// On/offExtratradecriteria = 0 // I.e. Long; Only Enters When The Current Bar High Is Lower Then The Lowest Daily High From Today, Yesterday And Day Before. 1Usepercentage = 0 // The Minimum Difference In Percentage [[1] From Dayopen Or In Points [0] From DayopenMfetrailing = 1 // Mfe Trailing Stop 1Wtrailing = 1 // Williams 3 Bar Trailing Stop 1Breakevenstop = 1 // Breakevenstop, Move Stoploss When Position Is In Profit. 1Excludefirsttwoweeks = 1 // Exclude The First 2 Weeks Of Every Year (Weeknumber 1 And 2)// SettingsPositionsize = 1SL = 0.6 // % Stoploss 0.6PT = 1.2 // % Profit Target 1.2MFETS = 0.35 // % Mfe Trailing StopBES = 0.35 // % Break Even Stop 0.35BESMP = 0.05 // % Break Even Stop Minimum Profit 0.05WTSMP = 0.50 // % Williams Trailing Stop Minimum Profit If Mfe Trailing Stop Is Not Used 0.50ETD = 0 // Exclude a Trade Day; Sunday = 0If Usepercentage ThenNopl=((Dayopen*0.15)/100)/pointsizeNops=((Dayopen*0.15)/100)/pointsizeElseNopl=6 //number of points long 6Nops=6 //number of points short 6Endif// Day & TimeOnce Entertime = 090000Once Lasttime = 100000Once Closetime = 172500 // Greater Then 23.59 Means It Continues Position OvernightOnce Closetimefr=173000If Excludefirsttwoweeks=1 ThenIf Year=2015 And Month=1 And (Day>=1 And Day<=18) ThenNotrading = 1Elsif Year=2016 And Month=1 And (Day>=1 And Day<=24) ThenNotrading = 1Elsif Year=2017 And Month=1 And (Day>=1 And Day<=22) ThenNotrading = 1Elsif Year=2018 And Month=1 And (Day>=1 And Day<=21) ThenNotrading = 1Elsif Year=2019 And Month=1 And (Day>=1 And Day<=20) ThenNotrading = 1ElseNotrading = 0EndifEndifTt1 = Time >= EntertimeTt2 = Time <= LasttimeTradetime = Tt1 And Tt2 and Notrading = 0 And Dayofweek <> ETD// Reset At StartIf Intradaybarindex = 0 ThenLongtradecounter = 0Shorttradecounter = 0Tradecounter = 0Mclong = 0Mcshort = 0Endif// [pc] Position CriteriaPclong = Countoflongshares < 1 And Longtradecounter < 1 And Tradecounter < 1Pcshort = Countofshortshares < 1 And Shorttradecounter < 1 And Tradecounter < 1// [mc] Main CriteriaIf Time = Entertime ThenDayopen=openEndifIf High > Dayopen+nopl ThenMclong=1ElseMclong=0EndifIf Low < Dayopen-nops ThenMcshort=1ElseMcshort=0Endif// [ec] Extra CriteriaIf Extratradecriteria ThenMin1 = Min(Dhigh(0),dhigh(1))Min2 = Min(Dhigh(1),dhigh(2))Max1 = Max(Dlow(0),dlow(1))Max2 = Max(Dlow(1),dlow(2))Eclong = High < Min(Min1,min2)Ecshort = Low > Max(Max1,max2)elseEclong=1Ecshort=1Endif// Long & Short EntryIf Tradetime ThenIf Pclong and Mclong And Eclong ThenBuy Positionsize Contract At MarketLongtradecounter=longtradecounter + 1Tradecounter=tradecounter+1EndifIf Pcshort and Mcshort And Ecshort ThenSellshort Positionsize Contract At MarketShorttradecounter=shorttradecounter + 1Tradecounter=tradecounter+1EndifEndif// Break Even StopIf Breakevenstop ThenIf Not Onmarket ThenNewsl=0EndifIf Longonmarket And close-tradeprice(1)>=((Tradeprice/100)*BES)*pipsize ThenNewsl = Tradeprice(1)+((Tradeprice/100)*BESMP)*pipsizeEndifIf Shortonmarket And Tradeprice(1)-close>=((Tradeprice/100)*BES)*pipsize ThenNewsl = Tradeprice(1)-((Tradeprice/100)*BESMP)*pipsizeEndifIf Newsl>0 ThenSell At Newsl StopExitshort At Newsl StopEndifEndif// Exit Mfe Trailing StopIf Mfetrailing ThenTrailingstop = (Tradeprice/100)*MFETSIf Not Onmarket ThenMaxprice = 0Minprice = ClosePriceexit = 0EndifIf Longonmarket ThenMaxprice = Max(Maxprice,close)If Maxprice-tradeprice(1)>=trailingstop*pipsize ThenPriceexit = Maxprice-trailingstop*pipsizeEndifEndifIf Shortonmarket ThenMinprice = Min(Minprice,close)If Tradeprice(1)-minprice>=trailingstop*pipsize ThenPriceexit = Minprice+trailingstop*pipsizeEndifEndifIf Onmarket And Wtrailing=0 And Priceexit>0 ThenSell At MarketExitshort At MarketEndifEndif// Exit Williams Trailing StopIf Wtrailing ThenCount=1I=0J=i+1Tot=0While Count<4 DoTot=tot+1If (Low[j]>=low[i]) And (High[j]<=high[i]) ThenJ=j+1ElseCount=count+1I=i+1J=i+1EndifWendBasso=lowest[tot](Low)Alto=highest[tot](High)If Close>alto[1] ThenRef=bassoEndifIf Close<basso[1] ThenRef=altoEndifIf Onmarket And Mfetrailing=0 And Positionperf>WTSMP ThenIf Low[1]>ref And High<ref ThenSell At MarketEndifIf High[1]<ref And Low>ref ThenExitshort At MarketEndifEndifIf Onmarket And Mfetrailing=1 And Priceexit>0 ThenIf High<ref ThenSell At MarketEndifIf Low>ref ThenExitshort At MarketEndifEndifEndif// Exit At ClosetimeIf Onmarket ThenIf Time >= Closetime ThenSell At MarketExitshort At MarketEndifEndif// Exit At Closetime FridayIf Onmarket ThenIf (Currentdayofweek=5 And Time>=closetimefr) ThenSell At MarketExitshort At MarketEndifEndif// Build-in ExitSet Stop %loss SLSet Target %profit PT//graph 0 Coloured(300,0,0) As "Zeroline"//graph (Positionperf*100)coloured(0,0,0,255) As "Positionperformance"12/06/2019 at 11:27 PM #114376You’ll find more help if you post in the correct forum. ProBuilder is for indicators. I will move your topic to the ProOrder forum which is for strategies.
Please try to post in the correct forum with future topics 🙂
1 user thanked author for this post.
12/15/2019 at 6:38 PM #11493712/15/2019 at 7:52 PM #114940Perhaps there is a lack of enthusiasm to code it because it will achieve little?
First of all we cannot know what price we bought at because of spread and slippage so within the first five minutes we can only guess that we bought at the same price as the close of the previous candle. After the first five minutes we can actually know our trade price and so set a more accurate reverse price.
However opening a trade and reversing soon after is never profitable as you pay the spread and slippage and then it reverses back and you reverse again and pay again!
12/16/2019 at 1:37 PM #114977 -
AuthorPosts