커뮤니티

수식수정 부탁드립니다

프로필 이미지
라면의비밀
2016-09-04 22:08:26
94
글번호 101655
답변완료
안녕하세요, 참조데이터를 활용하는 시스템을 작성하여 시뮬레이션을 돌려보았는데 아무런 시그널이 발생하지 않습니다. 어느 부분을 고쳐야하는지 도움 부탁드리겠습니다. data1은 500틱 데이타, data2는 60분봉 데이타, data3는 일봉 데이타 입니다. 수식을 간단하게 설명드리면, data3의 일봉데이타에서 5이평이 60이평보다 위이고, data2의 60분봉 5이평, 20이평, 60이평이 정배열 상태이며, data1의 500틱 데이타에서 봉 완성에 걸린 시간이 200초 미만이고, 볼린저 밴드 상단을 돌파하는 경우에 매수하라는 시스템 입니다. 수정 부탁드리겠습니다. 감사합니다. Input : BelowSecond(200); Var : SS(0),TS(0), Second(0); Var : MA3_60(0, Data3), MA3_20(0, Data3), MA3_5(0, Data3); Var : MA2_60(0, Data2), MA2_20(0, Data2), MA2_5(0, Data2); Var : MA1_60(0, Data1), MA1_20(0, Data1), MA1_5(0, Data1); Var : BBUp(0, Data1), BBDn(0, Data1) ; MA3_60 = Data3(Ma(Close, 60)); MA3_20 = Data3(Ma(Close, 20)); MA3_5 = Data3(Ma(Close, 5)); MA2_60 = Data2(Ma(Close, 60)); MA2_20 = Data2(Ma(Close, 20)); MA2_5 = Data2(Ma(Close, 5)); MA1_60 = Data1(Ma(Close, 60)); MA1_20 = Data1(Ma(Close, 20)); MA1_5 = Data1(Ma(Close, 5)); BBUp = Data1(BollBandUp(20,2)); BBDn = Data1(BollBandDown(20,2)); #체결속도지표 #봉의 시작날짜와 끝날짜가 같은 경우 If sdate == date then{ #봉시작 var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 SS = var1+var2; #봉끝 value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//긑시간 초 TS = value1+value2; Second = TS-SS; }; #봉의 시작날짜와 끝날짜가 다른 경우 If sdate != date then{ #봉시작 var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 SS = 86400-(var1+var2); #봉끝 value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//긑시간 초 TS = value1+value2; Second = TS+SS; }; #Buy 조건 If (MA3_5 > MA3_60) Then If (MA2_5 > MA2_20) and (MA2_20 > MA2_60) Then If (Data1(Second) <= BelowSecond) and Data1(CrossUp(Close, BBUp)) Then Buy("B1", OnClose); ; #Buy Exit 조건 If Data1(CrossDown(MA1_5, MA1_60)) Then ExitLong("BX1", OnClose); If Data2(CrossDown(MA2_5, MA2_20)) Then ExitLong("BX2", OnClose);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-09-05 11:38:16

안녕하세요 예스스탁입니다. 해당식 첨부된 그림과 같이 신호가 발생하고 있습니다. 수식 내용에서 따로 수정할 만한 내용은 없습니다. 차트에 봉을 최대로 조회후 적용해 보시기 바랍니다. 즐거운 하루되세요 > 라면의비밀 님이 쓴 글입니다. > 제목 : 수식수정 부탁드립니다 > 안녕하세요, 참조데이터를 활용하는 시스템을 작성하여 시뮬레이션을 돌려보았는데 아무런 시그널이 발생하지 않습니다. 어느 부분을 고쳐야하는지 도움 부탁드리겠습니다. data1은 500틱 데이타, data2는 60분봉 데이타, data3는 일봉 데이타 입니다. 수식을 간단하게 설명드리면, data3의 일봉데이타에서 5이평이 60이평보다 위이고, data2의 60분봉 5이평, 20이평, 60이평이 정배열 상태이며, data1의 500틱 데이타에서 봉 완성에 걸린 시간이 200초 미만이고, 볼린저 밴드 상단을 돌파하는 경우에 매수하라는 시스템 입니다. 수정 부탁드리겠습니다. 감사합니다. Input : BelowSecond(200); Var : SS(0),TS(0), Second(0); Var : MA3_60(0, Data3), MA3_20(0, Data3), MA3_5(0, Data3); Var : MA2_60(0, Data2), MA2_20(0, Data2), MA2_5(0, Data2); Var : MA1_60(0, Data1), MA1_20(0, Data1), MA1_5(0, Data1); Var : BBUp(0, Data1), BBDn(0, Data1) ; MA3_60 = Data3(Ma(Close, 60)); MA3_20 = Data3(Ma(Close, 20)); MA3_5 = Data3(Ma(Close, 5)); MA2_60 = Data2(Ma(Close, 60)); MA2_20 = Data2(Ma(Close, 20)); MA2_5 = Data2(Ma(Close, 5)); MA1_60 = Data1(Ma(Close, 60)); MA1_20 = Data1(Ma(Close, 20)); MA1_5 = Data1(Ma(Close, 5)); BBUp = Data1(BollBandUp(20,2)); BBDn = Data1(BollBandDown(20,2)); #체결속도지표 #봉의 시작날짜와 끝날짜가 같은 경우 If sdate == date then{ #봉시작 var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 SS = var1+var2; #봉끝 value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//&#44561;시간 초 TS = value1+value2; Second = TS-SS; }; #봉의 시작날짜와 끝날짜가 다른 경우 If sdate != date then{ #봉시작 var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 SS = 86400-(var1+var2); #봉끝 value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//&#44561;시간 초 TS = value1+value2; Second = TS+SS; }; #Buy 조건 If (MA3_5 > MA3_60) Then If (MA2_5 > MA2_20) and (MA2_20 > MA2_60) Then If (Data1(Second) <= BelowSecond) and Data1(CrossUp(Close, BBUp)) Then Buy("B1", OnClose); ; #Buy Exit 조건 If Data1(CrossDown(MA1_5, MA1_60)) Then ExitLong("BX1", OnClose); If Data2(CrossDown(MA2_5, MA2_20)) Then ExitLong("BX2", OnClose);