커뮤니티

검토 좀 해주세요!!!

프로필 이미지
너무조아
2015-04-16 18:29:25
240
글번호 85114
답변완료

첨부 이미지

아래의 수식에서 첨부 된 차트와 같이 부분적으로 진입과 청산이 다중으로 발생되는 부분이 있습니다. 검토 후 수정해 주시면 감사 하겠습니다. 아마도 # 주 시스템부분의 # Exits IF LReaction == 0 Then ExitLong("lx",atstop,LExit); IF SReaction == 0 Then ExitShort("sx",atstop,SExit); 부분과 # 보조 시스템 부분의 If MarketPosition == 0 Then { If LRLs > upv Then Buy("b2"); If LRLs < dnv Then Sell("s2"); } 이 부분이 상호 충돌로 일어나는 현상인 듯 합니다. # 1) 주 시스템부분 Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6); Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0), SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0), NewLThrust(False), NewSThrust(False), LTR(False), STR(False); # Assignment of values for the High/Low Channel HiChan = Highest(High, ChanLen)[1]; LoChan = Lowest(Low, ChanLen)[1]; # Reversal Breakout - Initial Setup IF MarketPosition <> 1 Then { IF High > HiChan Then { LReaction = 1; LReacHigh = High; LReacLow = Low; LExit = LReacLow; LThrust = 0; SReaction = 0; } } Else { LReaction = 0; LThrust = 0; } # Reversal Breakout - Initial Setup IF MarketPosition <> -1 Then { IF Low < LoChan Then { SReaction = 1; SReacHigh = High; SReacLow = Low; SExit = SReacLow; SThrust = 0; LReaction = 0; } } Else { SReaction = 0; LThrust = 0; } # Upward Trend Resumption IF LReaction >= 1 Then { IF Low < LExit Then { LExit = Low; LThrust = 0; } IF High < LReacHigh AND Low < LReacLow Then { LReaction = LReaction + 1; LReacHigh = High; LReacLow = Low; NewLThrust = True; } } # Downward Trend Resumption IF SReaction >= 1 Then { IF High > SExit Then { SExit = High; SThrust = 0; } IF Low > SReacLow AND High > SReacHigh Then { SReaction = SReaction + 1; SReacLow = Low; SReacHigh = High; NewSThrust = True; } } # Bullish Thrust Day accumulation IF LReaction >= Reaction AND Close > High[1] Then LThrust = LThrust + 1; # Bearish Thrust Day accumulation IF SReaction >= Reaction AND Close < Low[1] Then SThrust = SThrust + 1; # Thrust Count Completion LTR = LThrust == TCount AND NewLThrust; STR = SThrust == TCount AND NewSThrust; # Entry Price Setup IF LTR Then { LEntry = High + 0.1 ; NewLThrust = False; } IF STR Then { SEntry = Low - 0.1 ; NewSThrust = False; } # Entries IF MRO(LTR, Setup, 1) <> -1 Then Buy("b1",atstop,LEntry); IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then Sell("s1",atstop,SEntry); # Exits IF LReaction == 0 Then ExitLong("lx",atstop,LExit); IF SReaction == 0 Then ExitShort("sx",atstop,SExit); # 2) 보조 시스템 부분 Input : LRLP(9),sig(5); input : A(3),MU(2); var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0); LRLv = LRL(C,LRLP); LRLs = ema(LRLv,sig); Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균 if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(LRLs,upv) Then { upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(LRLs,dnv) Then { upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } If MarketPosition == 0 Then { If LRLs > upv Then Buy("b2"); If LRLs < dnv Then Sell("s2"); } # 선물 만기청산 var: month(0),nday(0),week(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then SetStopEndofday(144000); Else SetStopEndofday(0);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-04-17 09:49:12

안녕하세요 예스스탁입니다. 보조시스템쪽의 진입이 단순 크다와 작다로 되어 있어 청산후에도 계속 유지가 되고 잇으면 다시 진입하는 것을 반복합니다. 보조시스템의 진입조건을 상향돌파와 하향이탈로 변경했습니다. Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6); Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0), SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0), NewLThrust(False), NewSThrust(False), LTR(False), STR(False); # Assignment of values for the High/Low Channel HiChan = Highest(High, ChanLen)[1]; LoChan = Lowest(Low, ChanLen)[1]; # Reversal Breakout - Initial Setup IF MarketPosition <> 1 Then { IF High > HiChan Then { LReaction = 1; LReacHigh = High; LReacLow = Low; LExit = LReacLow; LThrust = 0; SReaction = 0; } } Else { LReaction = 0; LThrust = 0; } # Reversal Breakout - Initial Setup IF MarketPosition <> -1 Then { IF Low < LoChan Then { SReaction = 1; SReacHigh = High; SReacLow = Low; SExit = SReacLow; SThrust = 0; LReaction = 0; } } Else { SReaction = 0; LThrust = 0; } # Upward Trend Resumption IF LReaction >= 1 Then { IF Low < LExit Then { LExit = Low; LThrust = 0; } IF High < LReacHigh AND Low < LReacLow Then { LReaction = LReaction + 1; LReacHigh = High; LReacLow = Low; NewLThrust = True; } } # Downward Trend Resumption IF SReaction >= 1 Then { IF High > SExit Then { LExit = High; SThrust = 0; } IF Low > SReacLow AND High > SReacHigh Then { SReaction = SReaction + 1; SReacLow = Low; SReacHigh = High; NewSThrust = True; } } # Bullish Thrust Day accumulation IF LReaction >= Reaction AND Close > High[1] Then LThrust = LThrust + 1; # Bearish Thrust Day accumulation IF SReaction >= Reaction AND Close < Low[1] Then SThrust = SThrust + 1; # Thrust Count Completion LTR = LThrust == TCount AND NewLThrust; STR = SThrust == TCount AND NewSThrust; # Entry Price Setup IF LTR Then { LEntry = High + 0.1 ; NewLThrust = False; } IF STR Then { SEntry = Low - 0.1 ; NewSThrust = False; } # Entries IF MRO(LTR, Setup, 1) <> -1 Then Buy("b1",atstop,LEntry); IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then Sell("s1",atstop,SEntry); # Exits IF MarketPosition == 1 and LReaction == 0 Then ExitLong("lx",atstop,LExit); IF MarketPosition == -1 and SReaction == 0 Then ExitShort("sx",atstop,SExit); Input : LRLP(9),sig(5); input : A(3),MU(2); var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0); LRLv = LRL(C,LRLP); LRLs = ema(LRLv,sig); Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균 if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(LRLs,upv) Then { upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(LRLs,dnv) Then { upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } If MarketPosition == 0 Then { If crossup(LRLs,upv) Then Buy("b2"); If CrossDown(LRLs,dnv) Then Sell("s2"); } # 선물 만기청산 var: month(0),nday(0),week(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then SetStopEndofday(144000); Else SetStopEndofday(0); 즐거운 하루되세요 > 너무조아 님이 쓴 글입니다. > 제목 : 검토 좀 해주세요!!! > 아래의 수식에서 첨부 된 차트와 같이 부분적으로 진입과 청산이 다중으로 발생되는 부분이 있습니다. 검토 후 수정해 주시면 감사 하겠습니다. 아마도 # 주 시스템부분의 # Exits IF LReaction == 0 Then ExitLong("lx",atstop,LExit); IF SReaction == 0 Then ExitShort("sx",atstop,SExit); 부분과 # 보조 시스템 부분의 If MarketPosition == 0 Then { If LRLs > upv Then Buy("b2"); If LRLs < dnv Then Sell("s2"); } 이 부분이 상호 충돌로 일어나는 현상인 듯 합니다. # 1) 주 시스템부분 Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6); Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0), SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0), NewLThrust(False), NewSThrust(False), LTR(False), STR(False); # Assignment of values for the High/Low Channel HiChan = Highest(High, ChanLen)[1]; LoChan = Lowest(Low, ChanLen)[1]; # Reversal Breakout - Initial Setup IF MarketPosition <> 1 Then { IF High > HiChan Then { LReaction = 1; LReacHigh = High; LReacLow = Low; LExit = LReacLow; LThrust = 0; SReaction = 0; } } Else { LReaction = 0; LThrust = 0; } # Reversal Breakout - Initial Setup IF MarketPosition <> -1 Then { IF Low < LoChan Then { SReaction = 1; SReacHigh = High; SReacLow = Low; SExit = SReacLow; SThrust = 0; LReaction = 0; } } Else { SReaction = 0; LThrust = 0; } # Upward Trend Resumption IF LReaction >= 1 Then { IF Low < LExit Then { LExit = Low; LThrust = 0; } IF High < LReacHigh AND Low < LReacLow Then { LReaction = LReaction + 1; LReacHigh = High; LReacLow = Low; NewLThrust = True; } } # Downward Trend Resumption IF SReaction >= 1 Then { IF High > SExit Then { SExit = High; SThrust = 0; } IF Low > SReacLow AND High > SReacHigh Then { SReaction = SReaction + 1; SReacLow = Low; SReacHigh = High; NewSThrust = True; } } # Bullish Thrust Day accumulation IF LReaction >= Reaction AND Close > High[1] Then LThrust = LThrust + 1; # Bearish Thrust Day accumulation IF SReaction >= Reaction AND Close < Low[1] Then SThrust = SThrust + 1; # Thrust Count Completion LTR = LThrust == TCount AND NewLThrust; STR = SThrust == TCount AND NewSThrust; # Entry Price Setup IF LTR Then { LEntry = High + 0.1 ; NewLThrust = False; } IF STR Then { SEntry = Low - 0.1 ; NewSThrust = False; } # Entries IF MRO(LTR, Setup, 1) <> -1 Then Buy("b1",atstop,LEntry); IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then Sell("s1",atstop,SEntry); # Exits IF LReaction == 0 Then ExitLong("lx",atstop,LExit); IF SReaction == 0 Then ExitShort("sx",atstop,SExit); # 2) 보조 시스템 부분 Input : LRLP(9),sig(5); input : A(3),MU(2); var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0); LRLv = LRL(C,LRLP); LRLs = ema(LRLv,sig); Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균 if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(LRLs,upv) Then { upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(LRLs,dnv) Then { upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } If MarketPosition == 0 Then { If LRLs > upv Then Buy("b2"); If LRLs < dnv Then Sell("s2"); } # 선물 만기청산 var: month(0),nday(0),week(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then SetStopEndofday(144000); Else SetStopEndofday(0);