커뮤니티

아래 수식을 수정작업좀 부탁드립니다.

프로필 이미지
알러뷰
2016-10-25 08:03:03
124
글번호 103303
답변완료

첨부 이미지

안녕하세요 예스스탁님 50203번방에서 재수정 내용입니다. 위의 첨부파일 그림에서 보는바와 같이 아래 시스템 수식에서 검은선을 돌파/이탈시 진입이 안되구요 현재는 스위칭 기능 위주로 수식이 작성되어 있는데 이평선 돌파/이탈후에는 스위칭 기능을 없애고 매수/매도 독립신호로 진입과 청산 기능이 동작하도록 되어야 합니다. 현재 아래 수식에서는 "시스템성능보고서"에서 보는바와 같이 청산만되고 진입은 되지않아야 되는데 같은가격에 같이 진입되는 것으로 나옵니다. 결론을 서술하면 아래 수식을 이용하여 수정작업좀 부탁드립니다. 1. 주가가 검은선(27일선) 돌파/이탈시에는 스위칭 기능 수식을 사용해 주시고 2. 주가가 검은선(27일선) 돌파후에는 매수신호만 진입하고 매도신호출현일때는 청산만 주가가 검은선(27일선) 이탈후에는 매도신호만 진입하고 매수신호출현일때는 청산만 되독록 하는 아래 수식을 수정작업좀 부탁드립니다. input : P(14),BBP(20),dv(2),MAP(60),X(15),short(12),long(26),sig(9),Period(27); var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0); var : MACDV(0),MACDS(0),mav1(0); ADXV = ADX(P); DP = Diplus(P); DM = DiMinus(P); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); mav = ma(C,MAP); MACDV = MACD(short,long); MACDS = ema(MACDV,sig); mav1 = ma(C,Period); if crossup(ADXV,20) and ADXV >= X Then{ if DP > DM and dp < 25 Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입1"); } if DP < DM and dm < 25 Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입1"); } } if MarketPosition == 1 and IsEntryName("매수진입1") == true Then{ if CrossDown(DP,DM) Then ExitLong(); } if MarketPosition == -1 and IsEntryName("매도진입1") == true Then{ if CrossUp(DP,DM) Then ExitShort(); } if crossup(ADXV,10) and ADXV >= X Then{ if DP > DM Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입4"); } if DP < DM Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입4"); } } if MarketPosition == 1 and IsEntryName("매수진입4") == true Then{ if CrossDown(DP,DM) Then ExitLong(); } if MarketPosition == -1 and IsEntryName("매도진입4") == true Then{ if CrossUp(DP,DM) Then ExitShort(); } if ADXV >= X Then{ if crossup(MACDV,MACDS) Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입5"); } if CrossDown(MACDV,MACDS) Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입5"); } } if MarketPosition == -1 and crossup(c,mav1) Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("sb"); } if MarketPosition == 1 and CrossDown(c,mav1) Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("bs"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-10-25 11:23:27

> 알러뷰 님이 쓴 글입니다. > 제목 : 아래 수식을 수정작업좀 부탁드립니다. > 안녕하세요 예스스탁님 50203번방에서 재수정 내용입니다. 위의 첨부파일 그림에서 보는바와 같이 아래 시스템 수식에서 검은선을 돌파/이탈시 진입이 안되구요 현재는 스위칭 기능 위주로 수식이 작성되어 있는데 이평선 돌파/이탈후에는 스위칭 기능을 없애고 매수/매도 독립신호로 진입과 청산 기능이 동작하도록 되어야 합니다. 현재 아래 수식에서는 "시스템성능보고서"에서 보는바와 같이 청산만되고 진입은 되지않아야 되는데 같은가격에 같이 진입되는 것으로 나옵니다. 결론을 서술하면 아래 수식을 이용하여 수정작업좀 부탁드립니다. 1. 주가가 검은선(27일선) 돌파/이탈시에는 스위칭 기능 수식을 사용해 주시고 2. 주가가 검은선(27일선) 돌파후에는 매수신호만 진입하고 매도신호출현일때는 청산만 주가가 검은선(27일선) 이탈후에는 매도신호만 진입하고 매수신호출현일때는 청산만 되독록 하는 아래 수식을 수정작업좀 부탁드립니다. input : P(14),BBP(20),dv(2),MAP(60),X(15),short(12),long(26),sig(9),Period(27); var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0); var : MACDV(0),MACDS(0),mav1(0); ADXV = ADX(P); DP = Diplus(P); DM = DiMinus(P); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); mav = ma(C,MAP); MACDV = MACD(short,long); MACDS = ema(MACDV,sig); mav1 = ma(C,Period); if crossup(ADXV,20) and ADXV >= X Then{ if DP > DM and dp < 25 Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입1"); } if DP < DM and dm < 25 Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입1"); } } if MarketPosition == 1 and IsEntryName("매수진입1") == true Then{ if CrossDown(DP,DM) Then ExitLong(); } if MarketPosition == -1 and IsEntryName("매도진입1") == true Then{ if CrossUp(DP,DM) Then ExitShort(); } if crossup(ADXV,10) and ADXV >= X Then{ if DP > DM Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입4"); } if DP < DM Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입4"); } } if MarketPosition == 1 and IsEntryName("매수진입4") == true Then{ if CrossDown(DP,DM) Then ExitLong(); } if MarketPosition == -1 and IsEntryName("매도진입4") == true Then{ if CrossUp(DP,DM) Then ExitShort(); } if ADXV >= X Then{ if crossup(MACDV,MACDS) Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("매수진입5"); } if CrossDown(MACDV,MACDS) Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("매도진입5"); } } if MarketPosition == -1 and crossup(c,mav1) Then{ if MarketPosition == -1 and IsEntryName("bs") == true then ExitShort(); Else buy("sb"); } if MarketPosition == 1 and CrossDown(c,mav1) Then{ if MarketPosition == 1 and IsEntryName("sb") == true then ExitLong(); Else sell("bs"); }