답변완료
복합 분봉에서 일봉 ADX 지표 계산
복합 분봉에 일봉의 ADX를 표시하기 위해 다음과 같이 식을 짜 보았으나 첨부파일과 같이 매우 다른 결과를 얻게 되었습니다.
문제점이 무엇인지 수정 부탁드립니다.
감사합니다.
# ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>===========================================
Arrays : 일봉_시가[20](0), 일봉_고가[20](0), 일봉_저가[20](0), 일봉_종가[20](0);
Variable : cnt(0);
If sTime[1] < 080000 And 080000 <= sTime Then Begin
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If sTime[1] < 170000 And 170000 <= sTime Then Begin
For cnt = 19 DownTo 1 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1];
일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1];
End;
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If 일봉_고가[0] < High Then 일봉_고가[0] = High;
If 일봉_저가[0] > Low Then 일봉_저가[0] = Low;
일봉_종가[0] = Close;
# ===<<< 분봉 차트에서 일봉 DMI와 ADX 계산 >>>===========================================
Arrays : Positive_DM[14](0), Negative_DM[14](0), True_Range[14](0);
Arrays : Positive_DI[14](0), Negative_DI[14](0), DX[14](0), Average_DX[14](0);
Variables : Positive_DM14(0), Negative_DM14(0), True_Range14(0);
Arrays : Positive_DI14[14](0), Negative_DI14[14](0);
Variables : ADX_var1(0), ADX_var2(0), ADX_var3(0);
Variables : sum1(0), sum2(0), sum3(0), sum4(0), len(14);
If 일봉_고가[1] > 일봉_고가[0] Then Positive_DM[0] = 0;
Else Positive_DM[0] = 일봉_고가[0] - 일봉_저가[1];
If 일봉_저가[1] < 일봉_저가[0] Then Positive_DM[0] = 0;
Else Positive_DM[0] = 일봉_저가[1] - 일봉_저가[0];
ADX_var1 = Abs(일봉_고가[0]-일봉_저가[0]);
ADX_var2 = Abs(일봉_고가[0]-일봉_종가[1]);
ADX_var3 = Abs(일봉_저가[0]-일봉_종가[1]);
True_Range[0] = Max(ADX_var1, ADX_var2, ADX_var3);
Positive_DI[0] = Positive_DM[0] / True_Range[0];
Negative_DI[0] = Negative_DM[0] / True_Range[0];
sum1 = 0; # 단순이동평균
sum2 = 0;
sum3 = 0;
For cnt = 0 to len-1 Begin
sum1 = sum1 + Positive_DM[cnt];
sum2 = sum2 + Negative_DM[cnt];
sum3 = sum3 + True_Range[cnt];
End;
Positive_DM14 = sum1 / len;
Negative_DM14 = sum2 / len;
True_Range14 = sum3 / len;
Positive_DI14[0] = Positive_DM14 / True_Range14;
Negative_DI14[0] = Negative_DM14 / True_Range14;
DX[0] = Abs(Positive_DI[0]-Negative_DI[0]) / (Positive_DI[0]+Negative_DI[0]) * 100;
sum4 = 0; # 단순이동평균
For cnt = 0 to len-1 Begin
sum4 = sum4 + DX[cnt];
End;
Average_DX[0] = sum4 /len;
If sTime[1] < 170000 And 170000 <= sTime Then Begin
For cnt = 14 DownTo 1 Begin # 배열 이동
Positive_DM[cnt] = Positive_DM[cnt-1];
Negative_DM[cnt] = Negative_DM[cnt-1];
True_Range[cnt] = True_Range[cnt-1];
Positive_DI[cnt] = Positive_DI[cnt-1];
Negative_DI[cnt] = Negative_DI[cnt-1];
Positive_DI14[cnt] = Positive_DI14[cnt-1];
Negative_DI14[cnt] = Negative_DI14[cnt-1];
DX[cnt] = DX[cnt-1];
Average_DX[cnt] = Average_DX[cnt-1];
End;
End;
# ===<<< 분봉 차트에서 화면 출력 >>>========================================
If Positive_DI[1] < Positive_DI[0] Then Plot1(Positive_DI[0],"Positive_DI", RED);
Else If Positive_DI[1] > Positive_DI[0] Then Plot1(Positive_DI[0],"Positive_DI", BLUE);
If Negative_DI[1] < Negative_DI[0] Then Plot2(Negative_DI[0],"Negative_DI", RED);
Else If Negative_DI[1] > Negative_DI[0] Then Plot2(Negative_DI[0],"Negative_DI", BLUE);
If Average_DX[1] < Average_DX[0] Then Plot3(Average_DX[0],"Average_DX", RED);
Else If Average_DX[1] > Average_DX[0] Then Plot3(Average_DX[0],"Average_DX", BLUE);
# ===<<< 기준선 화면 출력 >>>========================================
PlotBaseLine1(20,"20",Gray);
2019-12-08
444
글번호 134217
지표
답변완료
선물신호를 옵션 신호로 부탁드립니다.
안녕하세요.
항상 수고가 많으십니다.
질문드립니다 -----------------------------------------------------------------------
(예제 전략식은 c > 20이평 : 매수, c < 20이평 : 매도)
이해를 돕기위해
선물신호에서 보통 5번의 매수신호와 5번의 매도신호가 발생한다고 가정하겠습니다.
신호발생시 진입수량은 1개씩입니다.
이것을 옵션신호로 바꾸려고합니다.
즉, 매수신호 발생시 -> 콜매수 1개
매도신호 발생시 -> 풋매수 1개
나중에는 결국, 콜매수 5개 풋매수 5개 양매수 상태가 되겠지요.
이 상태에서 장종료 무렵 콜과 풋을 동시에 전부 청산하려합니다.
참조데이타를 이용해서 해보려는데 잘 되지를 않는군요.
도움 부탁드립니다.
-------------------------------------------------------------------------------------
항상 감사드립니다.
좋은 일만 많이 생기시기를 ......
2019-12-09
247
글번호 134216
시스템
답변완료
문의 드립니다!
안녕하세요!
아래수식은 일전에 저의 문의에대하여 답변주신 내용인데요...
수고스럽겠지만 이 수식을 다음과같이 수정 부탁드리겠습니다
1, 아래수식은 1개의 콜행사가와 1개의 풋행사가에 각각 5개의 개별가격을 지정하게되어있는데..
==> 이것을 1개의 특정가격을 지정할때마다 행사가도 같이 각각 따로 지정할수있도록해주세요
즉, 각각의 가격마다 행사가도 같이 따로 지정할수있는 수식이 필요합니다
==> 그리고 이 가격의 개수는 (하나의 수식에다) 콜풋 각각 최대 8개씩 입력이 가능하도록 부탁드립니다
* 예를들어서...
콜 270.00 의 1.0 풋 275.00 의 1.0
콜 272.50 의 1.5 풋 272.50 의 1.5
콜 275.00 의 2.0 풋 270.00 의 2.0
. .
. .
. .
( 총 8개 ) ( 총 8개 )
* 이런식으로 콜풋별로 각각의 가격마다 행사가도 같이 별도로 지정할수있도록 부탁드립니다
2, 국선챠트상에 옵션 콜풋 특정행사가의 특정 이평선을 나타나게할수있을까요?
예를들어 콜 275의 20 이평선을 국선챠트에 나타낸다던가하는...
==> 콜,풋을 각각 별도의 수식으로해주시구요
==> 쿨,풋 각각 1개의 행사가에 3개의 이평선을 입력할수있도록 부탁드리겠습니다
매서운 추위에 건강에 유의하시구요
매번 너무너무 감사드리고있습니다 ^^*
---------------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
data2는 콜, data3은 풋으로 지정하시고 적용하시면 됩니다.
input : CallPrice1(1.0),CallPrice2(1.5),CallPrice3(2.0),CallPrice4(2.5),CallPrice5(3.0);
input : PutPrice1(1.0),PutPrice2(1.5),PutPrice3(2.0),PutPrice4(2.5),PutPrice5(3.0);
if data2(crossup(c,CallPrice1) or CrossDown(c,CallPrice1)) Then
{
var21 = c;
}
if data2(crossup(c,CallPrice2) or CrossDown(c,CallPrice2)) Then
{
var22 = c;
}
if data2(crossup(c,CallPrice3) or CrossDown(c,CallPrice3)) Then
{
var23 = c;
}
if data2(crossup(c,CallPrice4) or CrossDown(c,CallPrice4)) Then
{
var24 = c;
}
if data2(crossup(c,CallPrice5) or CrossDown(c,CallPrice5)) Then
{
var25 = c;
}
if var21 > 0 then
plot1(var21,"data2 CallPrice1교차");
if var22 > 0 then
plot2(var22,"data2 CallPrice2교차");
if var23 > 0 then
plot3(var23,"data2 CallPrice3교차");
if var24 > 0 then
plot4(var24,"data2 CallPrice4교차");
if var25 > 0 then
plot5(var25,"data2 CallPrice5교차");
if data3(crossup(c,PutPrice1) or CrossDown(c,PutPrice1)) Then
{
var31 = c;
}
if data3(crossup(c,PutPrice2) or CrossDown(c,PutPrice2)) Then
{
var32 = c;
}
if data3(crossup(c,PutPrice3) or CrossDown(c,PutPrice3)) Then
{
var33 = c;
}
if data3(crossup(c,PutPrice4) or CrossDown(c,PutPrice4)) Then
{
var34 = c;
}
if data3(crossup(c,PutPrice5) or CrossDown(c,PutPrice5)) Then
{
var35 = c;
}
if var31 > 0 then
plot6(var31,"data3 PutPrice1교차");
if var32 > 0 then
plot7(var32,"data3 PutPrice2교차");
if var33 > 0 then
plot8(var33,"data3 PutPrice3교차");
if var34 > 0 then
plot9(var34,"data3 PutPrice4교차");
if var35 > 0 then
plot10(var35,"data3 PutPrice5교차");
즐거운 하루되세요
> 유로파54 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 안녕하세요!
일전에 만들어주신 옵션관련 지표 매우 잘 활용하고있습니다 ^^
아래내용으로 한가지만 더 부탁드리겠습니다
옵션의 특정한 지정가격이 국선차트에서 가로선으로 표시될수있으면 좋겠습니다
이 지정가격은 필요에따라 수시로 바꿀수있고 콜 풋을 별도로 표시했으면 합니다
그리고 콜 풋별로 각각 5개정도의 가로선을 표시할수있으면 좋겠습니다
예를들어 콜 행사가 287.50에서 2.5의 자리,
그리고 풋행사가 285.00에서 2.5의 자리등
각각 최대 5개의 가격선을 국선챠트에 미리 표시를하고자함입니다
감사합니다 ^^
2019-12-07
126
글번호 134210
지표
답변완료
부탁드립니다
수고하십니다
이수식에서 Var1 < Var1[1] 이면 시가에 plot1을 청색선으로
Var1 > Var1[1] 이면 종가에 plot1을 빨간색선으로 부탁드립니다
input : Period(10),Period1(0);
Var : value(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
value = RSI(Period);
If CrossDown(value, 50) or CrossDown(value, 43) or CrossDown(value, 39) #청
or CrossDown(value, 35) or CrossDown(value, 30) Then
2019-12-07
185
글번호 134209
지표