예스스탁
예스스탁 답변
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();
}
}
즐거운 하루 되세요
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();
}
}
즐거운 하루 되세요