커뮤니티

수식검증 부탁합니다.

프로필 이미지
지킴이
2017-04-24 19:40:17
180
글번호 109118
답변완료
수식작성이 잘 안되서 부탁드립니다. Input : Period(1); var : kk(0,data2),aa(0,data2),diff(0,data2); << 중간에 수식이 있습니다.>> input : Nd(60); var : SSd(0),TSd(0),secondd(0),hsbb(0); var : countd(0),cntd(0); if Bdate != Bdate[1] Then{ var5 = TimeToMinutes(stime)*60; var6 = FracPortion(stime/100)*100; SSd = var5+var6; Secondd = 0; hsbb = 0; } if Bdate == Bdate[1] Then{ value3 = TimeToMinutes(stime)*60; value4 = FracPortion(stime/100)*100; TSd = value3+value4; Secondd = TSd-SSd; hsbb = ((Secondd-Secondd[1])-BarInterval)/BarInterval; } countd = 0; for cntd = 0 to Nd-1{ if sdate[cntd] == sdate then countd = countd + hsbb[cntd]; } var7 = Highest(h,70); var8 = Lowest(L, 70); var9 = Lowest(L, 30); Condition1 = countd >= 12 ; Condition2 = countd >= 12 and CountIF(var7 > var7[1], 20) < 1 and CountIF(var8 < var8[1], 20) < 1 and CountIF(hsbb >= 1 , 10) >= 1 ; if Condition2 == True and Condition2[1] == False Then Sell("매도1", OnClose); if BarsSinceEntry > 30 Then ExitShort("정리1"); 위와같이 수식을 작성 하였는데요.. 위에 있는 수식은 오류없이 원하는 결과가 나옵니다. 그런데 nd(60) 부터 시작하는.. 아래의 수식에서 계속 오류가 발생하네요.. 그 위의 수식은 건드리지 않고 아래 수식에 변화를 주어서 원하는 결과를 얻고 싶습니다. 잘라내기를 하면서 검증해보니까.. var : kk(0,data2),aa(0,data2),diff(0,data2); 이 라인때문에 오류가 발생합니다. 여기를 잘라내고 검증하면 원하는 결과가 그대로 나오는데 사실 아래것을 추가하기 위해서 없앨수가 없거든요.. 또, data2가 들어간다고 해서 아래 수식에서 딱히 영향을 미칠만한 것도 제 눈에는 안보이네요.. 어디가 잘못된 것이지 조언 부탁합니다. 감사 합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-25 14:56:56

안녕하세요 예스스탁입니다. 참조데이터를 이용한 수식에서는 기본종목의 계산식도 모두 변수에 데이터번호처리를 하셔야 하고 수식도 데이터번호함수로 묶어주셔야 합니다. Input : Period(1); var : kk(0,data2),aa(0,data2),diff(0,data2); # << 중간에 수식이 있습니다.>> input : Nd(60); var : SSd(0,data1),TSd(0,data1),secondd(0,data1),hsbb(0,data1); var : countd(0,data1),cntd(0,data1); var : V5(0,data1),V6(0,data1),val3(0,data1),val4(0,data1); var : V7(0,data1),v8(0,data1),v9(0,data1); var : cond1(false,data1),cond2(false,data1); if data1(Bdate != Bdate[1]) Then{ v5 = data1(TimeToMinutes(stime)*60); v6 = data1(FracPortion(stime/100)*100); SSd = v5+v6; Secondd = 0; hsbb = 0; } if data1(Bdate == Bdate[1]) Then{ val3 = data1(TimeToMinutes(stime)*60); val4 = data1(FracPortion(stime/100)*100); TSd = val3+val4; Secondd = TSd-SSd; hsbb = ((Secondd-Secondd[1])-BarInterval)/BarInterval; } countd = 0; for cntd = 0 to Nd-1{ if sdate[cntd] == sdate then countd = countd + hsbb[cntd]; } v7 = data1(Highest(h,70)); v8 = data1(Lowest(L, 70)); v9 = data1(Lowest(L, 30)); Cond1 = countd >= 12; Cond2 = data1(countd >= 12 and CountIF(v7 > v7[1], 20) < 1 and CountIF(v8 < v8[1], 20) < 1 and CountIF(hsbb >= 1 , 10) >= 1); if Cond2 == True and Cond2[1] == False Then Sell("매도1", OnClose); if BarsSinceEntry > 30 Then ExitShort("정리1"); 즐거운 하루되세요 > 지킴이 님이 쓴 글입니다. > 제목 : 수식검증 부탁합니다. > 수식작성이 잘 안되서 부탁드립니다. Input : Period(1); var : kk(0,data2),aa(0,data2),diff(0,data2); << 중간에 수식이 있습니다.>> input : Nd(60); var : SSd(0),TSd(0),secondd(0),hsbb(0); var : countd(0),cntd(0); if Bdate != Bdate[1] Then{ var5 = TimeToMinutes(stime)*60; var6 = FracPortion(stime/100)*100; SSd = var5+var6; Secondd = 0; hsbb = 0; } if Bdate == Bdate[1] Then{ value3 = TimeToMinutes(stime)*60; value4 = FracPortion(stime/100)*100; TSd = value3+value4; Secondd = TSd-SSd; hsbb = ((Secondd-Secondd[1])-BarInterval)/BarInterval; } countd = 0; for cntd = 0 to Nd-1{ if sdate[cntd] == sdate then countd = countd + hsbb[cntd]; } var7 = Highest(h,70); var8 = Lowest(L, 70); var9 = Lowest(L, 30); Condition1 = countd >= 12 ; Condition2 = countd >= 12 and CountIF(var7 > var7[1], 20) < 1 and CountIF(var8 < var8[1], 20) < 1 and CountIF(hsbb >= 1 , 10) >= 1 ; if Condition2 == True and Condition2[1] == False Then Sell("매도1", OnClose); if BarsSinceEntry > 30 Then ExitShort("정리1"); 위와같이 수식을 작성 하였는데요.. 위에 있는 수식은 오류없이 원하는 결과가 나옵니다. 그런데 nd(60) 부터 시작하는.. 아래의 수식에서 계속 오류가 발생하네요.. 그 위의 수식은 건드리지 않고 아래 수식에 변화를 주어서 원하는 결과를 얻고 싶습니다. 잘라내기를 하면서 검증해보니까.. var : kk(0,data2),aa(0,data2),diff(0,data2); 이 라인때문에 오류가 발생합니다. 여기를 잘라내고 검증하면 원하는 결과가 그대로 나오는데 사실 아래것을 추가하기 위해서 없앨수가 없거든요.. 또, data2가 들어간다고 해서 아래 수식에서 딱히 영향을 미칠만한 것도 제 눈에는 안보이네요.. 어디가 잘못된 것이지 조언 부탁합니다. 감사 합니다.