커뮤니티

수식 문의

프로필 이미지
에구머니
2026-01-02 19:34:06
78
글번호 229543
답변완료

안녕하세요?


시스템식 하나 부탁드립니다.



감사합니다.



시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2026-01-05 14:13:46

안녕하세요 예스스탁입니다. input : op(2); input : n1(1),n2(1),st(1000000),tp(150000); var : s1(Nan),s2(Nan),s3(Nan); var : b1(Nan),b2(Nan),b3(Nan); var : d2(Nan),d3(Nan),v1(Nan),v2(Nan),sum(Nan); if op == 2 Then { if CrossDown(bb,80) Then { s1 = bb; s2 = s1[1]; s3 = s2[1]; if MarketPosition == 0 and s1 > s2 and s2 > s3 Then { sell("s2",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if CrossUp(bb,20) Then { b1 = bb; b2 = b1[1]; b3 = b2[1]; if MarketPosition == 0 and b1 < b2 and b2 < b3 Then { Buy("b2",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if MarketPosition == -1 Then { v1 = ((d2-Data2(c))*n1)*BigPointValue; v2 = ((Data3(c)-d3)*n2)*BigPointValue; sum = v1+v2; if sum <= -st or sum >= tp Then ExitLong(); } if MarketPosition == 1 Then { v1 = ((Data2(c)-d2)*n1)*BigPointValue; v2 = ((d3-Data3(c))*n2)*BigPointValue; sum = v1+v2; if sum <= -st or sum >= tp Then ExitShort(); } } if op == 3 Then { if CrossDown(aa,80) Then { b1 = aa; b2 = b1[1]; b3 = b2[1]; if MarketPosition == 0 and b1 > b2 and b2 > b3 Then { Buy("b3",OnClose,Def,n2); d2 = Data2(c); d3 = Data2(c); } } if CrossUp(aa,20) Then { s1 = aa; s2 = s1[1]; s3 = s2[1]; if MarketPosition == 0 and s1 < s2 and s2 < s3 Then { Sell("s3",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if MarketPosition == -1 Then { v1 = ((Data2(c)-d2)*n1)*BigPointValue; v2 = ((d3-Data3(c))*n2)*BigPointValue; sum = v1+v2; if sum <= -st or sum >= tp Then ExitLong(); } if MarketPosition == 1 Then { v1 = ((d2-Data2(c))*n1)*BigPointValue; v2 = ((Data3(c)-d3)*n2)*BigPointValue; sum = v1+v2; if sum <= -st or sum >= tp Then ExitShort(); } } 즐거운 하루 되세요
프로필 이미지

에구머니

2026-01-05 14:32:16

1) 변수 설정할 때, var: s1(0)로 하는 것과 var: s1(NaN) 으로 하는 것의 차이는 뭔가요? 2) BigPointValue가 뭔가요?
프로필 이미지

예스스탁 예스스탁 답변

2026-01-05 14:47:39

안녕하세요 예스스탁입니다. 1 (0)과 (nan)모두 기본적으로 숫자형 변수로 선언되고 nan은 N/A(계산할수없는값)로 지정하는 것입니다. s1 > s2 and s2 > s3와 같이 비교할때 변수 중 하나라도 nan이면 비교문이 성립되지 않으므로 자동으로 s1,s2,s3에 모두 숫자값이 저장되어 있다라는 의미가 내포됩니다. 기초값을 0으로 지정하면 s3 > 0과 같은 조건을 추가해 주어야 합니다. 2 BigPointValue은 종목의 1포인트당 금액입니다. 주식은 1원입니다. 3 종목별로 상품이 다를수 있으므로 BigPointValue로 데이터번호처리해서 다시 올려드립니다. input : op(2); input : n1(1),n2(1),st(1000000),tp(150000); var : s1(Nan),s2(Nan),s3(Nan); var : b1(Nan),b2(Nan),b3(Nan); var : d2(Nan),d3(Nan),v1(Nan),v2(Nan),sum(Nan); if op == 2 Then { if CrossDown(bb,80) Then { s1 = bb; s2 = s1[1]; s3 = s2[1]; if MarketPosition == 0 and s1 > s2 and s2 > s3 Then { sell("s2",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if CrossUp(bb,20) Then { b1 = bb; b2 = b1[1]; b3 = b2[1]; if MarketPosition == 0 and b1 < b2 and b2 < b3 Then { Buy("b2",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if MarketPosition == -1 Then { v1 = ((d2-Data2(c))*n1)*data2(BigPointValue); v2 = ((Data3(c)-d3)*n2)*data3(BigPointValue); sum = v1+v2; if sum <= -st or sum >= tp Then ExitLong(); } if MarketPosition == 1 Then { v1 = ((Data2(c)-d2)*n1)*data2(BigPointValue); v2 = ((d3-Data3(c))*n2)*data3(BigPointValue); sum = v1+v2; if sum <= -st or sum >= tp Then ExitShort(); } } if op == 3 Then { if CrossDown(aa,80) Then { b1 = aa; b2 = b1[1]; b3 = b2[1]; if MarketPosition == 0 and b1 > b2 and b2 > b3 Then { Buy("b3",OnClose,Def,n2); d2 = Data2(c); d3 = Data2(c); } } if CrossUp(aa,20) Then { s1 = aa; s2 = s1[1]; s3 = s2[1]; if MarketPosition == 0 and s1 < s2 and s2 < s3 Then { Sell("s3",OnClose,Def,n1); d2 = Data2(c); d3 = Data2(c); } } if MarketPosition == -1 Then { v1 = ((Data2(c)-d2)*n1)*data2(BigPointValue); v2 = ((d3-Data3(c))*n2)*data3(BigPointValue); sum = v1+v2; if sum <= -st or sum >= tp Then ExitLong(); } if MarketPosition == 1 Then { v1 = ((d2-Data2(c))*n1)*data2(BigPointValue); v2 = ((Data3(c)-d3)*n2)*data3(BigPointValue); sum = v1+v2; if sum <= -st or sum >= tp Then ExitShort(); } } 즐거운 하루 되세요