커뮤니티
수식검증 부탁합니다.
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가 들어간다고 해서 아래 수식에서 딱히 영향을 미칠만한 것도 제 눈에는 안보이네요.. 어디가 잘못된 것이지 조언 부탁합니다.
감사 합니다.