커뮤니티
수식 부탁드립니다.
2015-07-28 23:17:06
154
글번호 88942
안녕하세요.
늘 도움 주셔서 감사드립니다.
얼마전 다른 분께서 올리신 추세선 지표를 이용해서 (변경하지 않았습니다.)
옵션프리합을 관찰하는 지표를 만들어 보고 싶은데, 제 실력으로는 역부족이네요.
1.첨부한 사진에서 보이는
양합 가격 (var9)
콜합 가격 (var10)
풋합 가격 (var11)을 화면에 표시하고 싶습니다.
2. 추세선의 고점, 저점에 나타나는 가격을 /
해당 지점의 양합 가격(var9)으로 대체하여 표시하고 싶습니다.
먼저 감사드립니다.
좋은 하루 되세요~
input:
C1(1), C2(1),
P1(1), P2(1);
var1 = data2(c);
var2 = data3(c);
var3 = data4(c);
var4 = data5(c);
var5 = data2(DayOpen);
var6 = data3(DayOpen);
var7 = data4(DayOpen);
var8 = data5(DayOpen);
var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세
var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합
var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx(0),T(0),trnd(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,52) == H and lastHiVal <> H;
Condition2 = Lowest(L,52) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then{
Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
Text_SetStyle(tx,2,2);
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
}
Else{
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
}
TL_SetSize(TL1[1],3);
TL_SetColor(TL1[1],RGB(20,255,255));
if turnPntArr[1][0] == "Hi" Then
trnd = 1;
if turnPntArr[1][0] == "Lo" Then
trnd = -1;
if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
답변 1
예스스탁 예스스탁 답변
2015-07-28 10:22:12
안녕하세요
예스스탁입니다.
텍스트 출력함수는 날짜 시간 가격을 지정해
해당 위치에 텍스트를 출력합니다.
그림에 지정하신 위치는 수식으로 표현하기 어렵습니다.
각 고점과 저점이 출력될때
해당 위치에 양합/콜합/풋합으로 출력되게 작성했습니다.
input:
C1(1), C2(1),
P1(1), P2(1);
var1 = data2(c);
var2 = data3(c);
var3 = data4(c);
var4 = data5(c);
var5 = data2(DayOpen);
var6 = data3(DayOpen);
var7 = data4(DayOpen);
var8 = data5(DayOpen);
var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세
var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합
var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx1(0),tx2(0),tx3(0),T(0),trnd(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,52) == H and lastHiVal <> H;
Condition2 = Lowest(L,52) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then{
Tx1 = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2]+PriceScale*2,
"양합:"+NumToStr(var9[barArr[2]],2)+NewLine+"양합:"+NumToStr(var9[barArr[2]],2)+NewLine+"풋합:"+NumToStr(var11[barArr[2]],2));
Text_SetStyle(tx1,2,2);
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
}
Else{
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
}
TL_SetSize(TL1[1],3);
TL_SetColor(TL1[1],RGB(20,255,255));
if turnPntArr[1][0] == "Hi" Then
trnd = 1;
if turnPntArr[1][0] == "Lo" Then
trnd = -1;
if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
plot1(var10);
plot2(var11);
즐거운 하루되세요
> gaintoga 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> 안녕하세요.
늘 도움 주셔서 감사드립니다.
얼마전 다른 분께서 올리신 추세선 지표를 이용해서 (변경하지 않았습니다.)
옵션프리합을 관찰하는 지표를 만들어 보고 싶은데, 제 실력으로는 역부족이네요.
1.첨부한 사진에서 보이는
양합 가격 (var9)
콜합 가격 (var10)
풋합 가격 (var11)을 화면에 표시하고 싶습니다.
2. 추세선의 고점, 저점에 나타나는 가격을 /
해당 지점의 양합 가격(var9)으로 대체하여 표시하고 싶습니다.
먼저 감사드립니다.
좋은 하루 되세요~
input:
C1(1), C2(1),
P1(1), P2(1);
var1 = data2(c);
var2 = data3(c);
var3 = data4(c);
var4 = data5(c);
var5 = data2(DayOpen);
var6 = data3(DayOpen);
var7 = data4(DayOpen);
var8 = data5(DayOpen);
var9 = ((var1*C1)+(var2*C2)+(var3*P1)+(var4*P2))-((var5*C1)+(var6*C2)+(var7*P1)+(var8*P2)); #프리시세
var10 = (((var5*C1)+(var6*C2))/(C1+C2)); #콜 시가합
var11 = (((var7*P1)+(var8*P2))/(P1+P2)); #풋 시가합
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx(0),T(0),trnd(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,52) == H and lastHiVal <> H;
Condition2 = Lowest(L,52) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then{
Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2));
Text_SetStyle(tx,2,2);
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
}
Else{
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
}
TL_SetSize(TL1[1],3);
TL_SetColor(TL1[1],RGB(20,255,255));
if turnPntArr[1][0] == "Hi" Then
trnd = 1;
if turnPntArr[1][0] == "Lo" Then
trnd = -1;
if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");
if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then
PlaySound("E:₩예스트레이더₩data₩Sound₩alert.wav");