예스스탁
예스스탁 답변
2022-10-07 15:11:45
안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
현재 수식은 첫봉의 ATM을 기준으로 종목을 선정해서 장끝까지 해당종목의 종가를 그리는 지표입니다.
중간에 ATM이 변경이 되면 기존 종가에 +-4틱 더해서 그리게 변경해 드립니다.
var : V1(0,Data1),V2(0,Data1),ATM(0,Data1);
var : cnt(0,Data1);
var : Ci(0,Data1),Pi(0,Data1),count(0,Data1);
Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0);
#콜종가
CC[2] = Data2(c);
CC[3] = Data4(c);
CC[4] = Data5(c);
CC[5] = Data6(c);
CC[6] = Data7(c);
#콜틱
CT[2] = Data2(PriceScale);
CT[3] = Data4(PriceScale);
CT[4] = Data5(PriceScale);
CT[5] = Data6(PriceScale);
CT[6] = Data7(PriceScale);
#풋가격
PP[2] = Data3(c);
PP[3] = Data8(c);
PP[4] = Data9(c);
PP[5] = Data10(c);
PP[6] = Data11(c);
#풋틱
PT[2] = Data3(PriceScale);
PT[3] = Data8(PriceScale);
PT[4] = Data9(PriceScale);
PT[5] = Data10(PriceScale);
PT[6] = Data11(PriceScale);
V1 = Data12(c);
V2 = data12(Floor(c/2.5)*2.5);
if V1-V2 > 2.5/2 Then
ATM = V2+2.5;
else
ATM = V2;
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] == ATM Then
var1 = cnt;
if CS[cnt] == ATM+2.5 Then
Var2 = cnt;
if CS[cnt] == ATM-2.5 Then
Var3 = cnt;
if PS[cnt] == ATM Then
value1 = cnt;
if PS[cnt] == ATM+2.5 Then
Value2 = cnt;
if PS[cnt] == ATM-2.5 Then
Value3 = cnt;
}
}
Else
{
if ATM != ATM[1] Then
count = count+1;
}
if var1 > 0 Then
Plot1(CC[var1]+IFf(count == 0,0,CT[var1]*4));
if Var2 > 0 Then
Plot2(CC[Var2]+IFf(count == 0,0,CT[var1]*4));
if Var3 > 0 Then
Plot3(CC[Var3]+IFf(count == 0,0,CT[var1]*4));
if value1 > 0 then
plot4(PP[value1]-IFf(count == 0,0,CT[var1]*4));
if value2 > 0 then
plot5(PP[value2]-IFf(count == 0,0,CT[var1]*4));
if value3 > 0 then
plot6(PP[value3]-IFf(count == 0,0,CT[var1]*4));
즐거운 하루되세요
> 파생돌이 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 수고하십니다
아래수식은 모든 콜,풋종가에 그려지던데, 현재의등가콜,풋에만 그려지다가, 등가가 변경될때 마다 변경된등가의 콜,풋종가 가 아닌 ,콜4틱위에,풋4틱아래에 그려지는 수식으로 변경 부탁드립니다
var : V1(0,Data1),V2(0,Data1),ATM(0,Data1);
var : cnt(0,Data1);
var : Ci(0,Data1),Pi(0,Data1);
Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0);
#콜종가
CC[2] = Data2(c);
CC[3] = Data4(c);
CC[4] = Data5(c);
CC[5] = Data6(c);
CC[6] = Data7(c);
#풋가격
PP[2] = Data3(c);
PP[3] = Data8(c);
PP[4] = Data9(c);
PP[5] = Data10(c);
PP[6] = Data11(c);
if data1(Bdate != Bdate[1]) then
{
V1 = Data12(c);
V2 = data12(Floor(c/2.5)*2.5);
if V1-V2 > 2.5/2 Then
ATM = V2+2.5;
else
ATM = V2;
#콜행사가
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] == ATM Then
var1 = cnt;
if CS[cnt] == ATM+2.5 Then
Var2 = cnt;
if CS[cnt] == ATM-2.5 Then
Var3 = cnt;
if PS[cnt] == ATM Then
value1 = cnt;
if PS[cnt] == ATM+2.5 Then
Value2 = cnt;
if PS[cnt] == ATM-2.5 Then
Value3 = cnt;
}
}
if var1 > 0 Then
Plot1(CC[var1]);
if Var2 > 0 Then
Plot2(CC[Var2]);
if Var3 > 0 Then
Plot3(CC[Var3]);
if value1 > 0 then
plot4(PP[value1]);
if value2 > 0 then
plot5(PP[value2]);
if value3 > 0 then
plot6(PP[value3]);