커뮤니티

수식점검 부탁드립니다.

프로필 이미지
바바큰
2017-02-05 21:58:25
96
글번호 106536
답변완료
#매수 매도가 이루어 지지않습니다. 확인좀 부탁드립니다. # 운영시간 (09:00~06:00) 종료시간 모두 청산 # 10, 30, 60, 120선 정배열 and 5선 10일선 crosseup하면 매수 # 10, 30, 60, 120선 역배열 and 5선 10일선 crossdown하면 매도 # 20틱 하락시 시장가 청산 # 매수시 5일선이 20일선을 아래로 내려가면 청산 # 매도시 5일선이 20일선을 위로 올라가면 청산 input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);; var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false); var : BH(0), SL(0),T1(0); mav5 = ma(c,P1); mav10 = ma(c,P2); mav20 = ma(c,P3); mav30 = ma(c,P4); mav60 = ma(c,P5); mav120 = ma(c,P6); if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("종료시간 매수청산"); if MarketPosition == -1 Then ExitShort("종료시간 매도청산"); } if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { T = 0; Tcond = true; Xcond = false; } if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then Xcond = true; If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND (mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then T == 1 ; If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND (mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then T == -1 ; if Tcond == true and Xcond == false then { if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then buy("S매수"); if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then sell("B매도"); } if MarketPosition == 1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA); if CrossDown(mav5,mav20) Then exitlong("20일선매수청산"); } if MarketPosition == -1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA); if CrossUp(mav5,mav20) Then exitlong("20일선매도청산"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-02-06 14:58:47

안녕하세요 예스스탁입니다. If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND (mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then T == 1 ; 식을 수정했습니다. 변수에 값할당이 연산자 = 이어야 하는데 == 와 같이 같다라는 표현으로 되어 있었습니다. input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);; var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false); var : BH(0), SL(0),T1(0); mav5 = ma(c,P1); mav10 = ma(c,P2); mav20 = ma(c,P3); mav30 = ma(c,P4); mav60 = ma(c,P5); mav120 = ma(c,P6); if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("종료시간 매수청산"); if MarketPosition == -1 Then ExitShort("종료시간 매도청산"); } if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { T = 0; Tcond = true; Xcond = false; } if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then Xcond = true; If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND (mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then T = 1 ; If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND (mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then T = -1 ; if Tcond == true and Xcond == false then { if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then buy("S매수"); if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then sell("B매도"); } if MarketPosition == 1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA); if CrossDown(mav5,mav20) Then exitlong("20일선매수청산"); } if MarketPosition == -1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA); if CrossUp(mav5,mav20) Then exitlong("20일선매도청산"); } 즐거운 하루되세요 > 바바큰 님이 쓴 글입니다. > 제목 : 수식점검 부탁드립니다. > #매수 매도가 이루어 지지않습니다. 확인좀 부탁드립니다. # 운영시간 (09:00~06:00) 종료시간 모두 청산 # 10, 30, 60, 120선 정배열 and 5선 10일선 crosseup하면 매수 # 10, 30, 60, 120선 역배열 and 5선 10일선 crossdown하면 매도 # 20틱 하락시 시장가 청산 # 매수시 5일선이 20일선을 아래로 내려가면 청산 # 매도시 5일선이 20일선을 위로 올라가면 청산 input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);; var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false); var : BH(0), SL(0),T1(0); mav5 = ma(c,P1); mav10 = ma(c,P2); mav20 = ma(c,P3); mav30 = ma(c,P4); mav60 = ma(c,P5); mav120 = ma(c,P6); if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("종료시간 매수청산"); if MarketPosition == -1 Then ExitShort("종료시간 매도청산"); } if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { T = 0; Tcond = true; Xcond = false; } if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then Xcond = true; If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND (mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then T == 1 ; If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND (mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then T == -1 ; if Tcond == true and Xcond == false then { if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then buy("S매수"); if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then sell("B매도"); } if MarketPosition == 1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA); if CrossDown(mav5,mav20) Then exitlong("20일선매수청산"); } if MarketPosition == -1 Then { BH = highest(H,BarsSinceEntry); ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA); if CrossUp(mav5,mav20) Then exitlong("20일선매도청산"); }