1. 분봉이나 틱봉에서 전일 adx의 고가, 전전일 adx의 고가 등등을 필터로 사용하려고 합니다. 예를 들면 전일 adx 고가를 hadx[1]이라고 한다면 이게 특정수치 이하인 조건 등을 시스템으로 넣으려고 합니다.
예를 들면 if hadx[1]<30 and hadx[2]<30 then ~~~~~
그렇게 하기 위한 hadx의 시스템 조건 수식을 부탁드려요
2.
가. 보통 우리가 사용하는 adx 버전
나. 갭을 빼고 당일의 움직음 만을 고려한 adx를 사용한 버전
이렇게 가능할까요?
필요하다면 사용자 함수를 사용해서든 다양한 방법도 상관없습니다!
답변 1
예스스탁
예스스탁 답변
2024-04-08 11:30:58
안녕하세요
예스스탁입니다.
1
input : Period(14);
var : ADXv(0),cnt(0);
Array : Hadx[10](0);
ADXv = ADX(Period);
if Bdate != Bdate[1] Then
{
For cnt = 9 DownTo 1
{
Hadx[cnt] = Hadx[cnt-1];
}
Hadx[0] = ADXV;
}
if ADXV > Hadx[0] Then
Hadx[0] = Adxv;
if hadx[1]<30 and hadx[2]<30 then
2
Inputs : Period(14);
Var : idx(0),Counter(0), TRange(0), PlusDM14(0),MinusDM14(0);
var : PlusDM(0), MinusDM(0),DMIv(0);
var : DP(0),DM(0),hd(0),ld(0);
var : cnt(0);
Array : Hadx[10](0);
if bdate != Bdate[1] Then
{
idx = 0;
DP = 0;
DM = 0;
}
else
idx = idx+1;
if idx == 0 Then
hd = C-O;
Else
hd = H-H[1];
if idx == 0 Then
ld = C-O;
Else
ld = L-L[1];
If idx >= 0 and idx <= Period+1 Then
{
DP = 0;
DM = 0;
PlusDM14 = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To idx
{
If hd < 0 Then
PlusDM = 0;
Else
PlusDM = hd;
If ld < 0 Then
MinusDM = 0;
Else
MinusDM = ld;
var1 = PlusDM;
Var2 = MinusDM;
If Var2 >= var1 Then
PlusDM = 0;
If var1 >= Var2 Then
MinusDM = 0;
TRange = TRange + TrueRange[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
{
DP = 100 * PlusDM14 / TRange;
DM = 100 * MinusDM14 / TRange;
}
Else
{
DP = 0;
DM = 0;
}
}
If idx > Period+1 Then
{
If hd < 0 Then
PlusDM = 0;
Else
PlusDM = hd;
If ld < 0 Then
MinusDM = 0;
Else
MinusDM = ld;
var1 = PlusDM;
Var2 = MinusDM;
If Var2 >= var1 Then
PlusDM = 0;
If var1 >= Var2 Then
MinusDM = 0;
If Period > 0 Then Begin
TRange = TRange[1] - (TRange[1] / Period) + TrueRange;
PlusDM14 = PlusDM14[1] - (PlusDM14[1] / Period) + PlusDM;
MinusDM14 = MinusDM14[1] - (MinusDM14[1] / Period) + MinusDM;
End;
If TRange <> 0 Then
{
DP = 100 * PlusDM14 / TRange;
DM = 100 * MinusDM14 / TRange;
}
Else
{
DP = 0;
DM = 0;
}
}
If DP + DM == 0 Then
DMIv = 0;
Else
DMIv = 100 * AbsValue(DP - DM) / (DP + DM);
var : CummDMI(0),ADXV(0);
If idx >= 1 AND Period > 0 Then
{
If idx < Period Then
{
CummDMI = 0;
for Counter = 0 To idx - 1
{
CummDMI = CummDMI + DMIV[Counter];
}
ADXv = CummDMI / idx;
}
Else
ADXv = (ADXv * (Period - 1) + DMIv) / Period;
}
if Bdate != Bdate[1] Then
{
For cnt = 9 DownTo 1
{
Hadx[cnt] = Hadx[cnt-1];
}
Hadx[0] = ADXV;
}
if ADXV > Hadx[0] Then
Hadx[0] = Adxv;
if hadx[1]<30 and hadx[2]<30 then
즐거운 하루되세요
> 돈을잃자 님이 쓴 글입니다.
> 제목 : 안녕하세요
> 1. 분봉이나 틱봉에서 전일 adx의 고가, 전전일 adx의 고가 등등을 필터로 사용하려고 합니다. 예를 들면 전일 adx 고가를 hadx[1]이라고 한다면 이게 특정수치 이하인 조건 등을 시스템으로 넣으려고 합니다.
예를 들면 if hadx[1]<30 and hadx[2]<30 then ~~~~~
그렇게 하기 위한 hadx의 시스템 조건 수식을 부탁드려요
2.
가. 보통 우리가 사용하는 adx 버전
나. 갭을 빼고 당일의 움직음 만을 고려한 adx를 사용한 버전
이렇게 가능할까요?
필요하다면 사용자 함수를 사용해서든 다양한 방법도 상관없습니다!