예스스탁
예스스탁 답변
2022-10-28 12:20:32
안녕하세요
예스스탁입니다.
CS와 PS는 종목코드에서 290과 같은 행사가가 추출해서 저장되는 변수입니다.
콜과 풋의 가격을 저장하는 배열변수가 아닙니다.
콜고가와 풋저가는 현재올리신 식에서 CH와 PL에 저장됩니다.
올려주신 내용은 콜의 고가와 풋의 저가의 차이가 0.15인 종목을 찾는 내용이신것 같습니다.
해당식에서는 행사가는 필요가 없습니다.
각 콜에서 PL[2]~PL[6]만 비교해서 값저장하시면 됩니다.
var : cnt(0,Data1);
var : Ci(0,Data1),Pi(0,Data1),count(0,Data1);
Array : CS[7](0),CH[7](0),PS[7](0),PL[7](0),CT[7](0),PT[7](0);
#콜고가
CH[2] = Data2(h); #→→고가
CH[3] = Data4(h);
CH[4] = Data5(h);
CH[5] = Data6(h);
CH[6] = Data7(h);
#풋저가
PL[2] = Data3(L); #→→저가
PL[3] = Data8(L);
PL[4] = Data9(L);
PL[5] = Data10(L);
PL[6] = Data11(L);
if data1(Bdate != Bdate[1]) then
{
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
For cnt = 2 to 6
{
#CH[2]와 0.15이내 차이있는 PL이 있으면 중간값저장
if abs(CH[2]-PL[cnt]) <= 0.15 Then
var1 = (CH[2]+PL[cnt])/2;
#CH[3]와 0.15이내 차이있는 PL이 있으면 중간값저장
if abs(CH[3]-PL[cnt]) <= 0.15 Then
var2 = (CH[3]+PL[cnt])/2;
#CH[4]와 0.15이내 차이있는 PL이 있으면 중간값저장
if abs(CH[4]-PL[cnt]) <= 0.15 Then
var3 = (CH[4]+PL[cnt])/2;
#CH[5]와 0.15이내 차이있는 PL이 있으면 중간값저장
if abs(CH[5]-PL[cnt]) <= 0.15 Then
var4 = (CH[5]+PL[cnt])/2;
#CH[6]와 0.15이내 차이있는 PL이 있으면 중간값저장
if abs(CH[6]-PL[cnt]) <= 0.15 Then
var5 = (CH[6]+PL[cnt])/2;
}
}
if var1 > 0 Then
Plot1(var1);
if var2 > 0 Then
Plot2(var2);
if var3 > 0 Then
Plot3(var3);
if var4 > 0 Then
Plot4(var4);
if var5 > 0 Then
Plot5(var5);
즐거운 하루되세요
> 파생돌이 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 수고하십니다
저번에 전화드린거 잘해결했습니다
아래수식은 제가 엉터리로 한수식입니다
((수식내용은 콜,풋중 현재가가 같으면 조건에 만족하면 선긋기))
그런데 현재가를 도저히 어땋게 해야할지 모르겠내요?
#조건1.ElseIf 콜고 <= 풋저 + 0.15 And 콜고 >= 풋저 - 0.15 Then 에 선긋기,조건1은Plot1에
#조건2.ElseIf 풋고 <= 콜저 + 0.15 And 풋고 >= 콜저 - 0.15 Then 에 선긋기))조건2은Plot2
var : cnt(0,Data1);
var : Ci(0,Data1),Pi(0,Data1),count(0,Data1);
Array : CS[7](0),CH[7](0),PS[7](0),PL[7](0),CT[7](0),PT[7](0);
#콜고가
CH[2] = Data2(h); #→→고가
CH[3] = Data4(h);
CH[4] = Data5(h);
CH[5] = Data6(h);
CH[6] = Data7(h);
#풋저가
PL[2] = Data3(L); #→→저가
PL[3] = Data8(L);
PL[4] = Data9(L);
PL[5] = Data10(L);
PL[6] = Data11(L);
if data1(Bdate != Bdate[1]) then
{
#콜행사가 #고가→→이러면 콜행사가의 고가를가져오는수식이 안되나요? 아니면 어떻게하나요?
CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[4]= data5(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[5]= data6(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[6]= data7(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
#풋행사가 #저가→→이러면 콜행사가의 고가를가져오는수식이 안되나요?
PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[4]= data9(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[5]= data10(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[6]= data11(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
var1 = 0;
Var2 = 0;
Var3 = 0;
For cnt = 2 to 6
{
if CS[cnt] == PS[cnt] Then #→→ #CS[2]~CS[6]의 값중 == PS[2]~PS[6]의 값중 현재가가 같으면 그때의 조건
var1 = cnt; (( #조건 1.ElseIf 콜고 <= 풋저 + 0.15 And 콜고 >= 풋저 - 0.15 Then 에 선긋기
#조건 2.ElseIf 풋고 <= 콜저 + 0.15 And 풋고 >= 콜저 - 0.15 Then 에 선긋기))
if PS[cnt] == CS[cnt] Then
value1 = cnt;
}
}
if var1 > 0 and value1 > 0 Then #→→ #조건1.
Plot1((CH[var1] + PL[Var2]) / 2);
if var1 > 0 and value1 > 0 Then #→→ #조건2.
Plot2((CH[var1] + PL[Var2]) / 2);