도움에 감사 드립니다.
질문 수식을 타주기(분봉용)식으로 어슬픈 지식으로 작성 해본것입니다.
1)타주기(분봉용)식을 정상적인지 검토와
2)타주기(틱봉용)과
3)타주기(분봉에서 일봉지표)식 부탁 드립니다.
미리 경배로 감사 인사 올립니다.
질문수식)
var : src(0),a(0),b(0),size(0);
if a[1] > a[2] Then
{
Condition1 = true;
var1 = 0;
}
Else
{
if Condition1 == true Then
var1 = var1+1;
}
if b[1] < b[2] Then
{
Condition2 = true;
var2 = 0;
}
Else
{
if Condition2 == true Then
var2 = var2+1;
}
size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 , atr(length) ,TrueRange);
a = max(c,a[1]) - size/pow(length,2)*(var1*mult);
b = min(c,b[1]) + size/pow(length,2)*(Var2*mult);
var11=(a+b)/2;
var3=c-var11;;
var33=ma(var3,sig);
*타주기(분봉)식
input : 타주기분(30),length(60),mult(1),sig(5);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),idx(0);
//타주기식_TrueRange
var : HH(0),LL(0),C1(0);
Array : cc10[101](0),TH[101](0),TL[101](0),TR[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
C1 = CC10[1];
for cnt = 1 to 100
{
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC10[0] = c;
TH[0] = max(C1,HH);
TL[0] = Min(C1,LL);
TR[0] = TH[0]-TL[0];
}
//타주기식_ATR
var : hht2(0),LL3(0),C13(0),CC3(0);
var : sumTR(0),ATRV(0);
Array : TH3[101](0),TL3[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
c13 = cc3[1];
for cnt = 1 to 100
{
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
cc3 = c;
TH[0] = max(c13,HH);
TL[0] = Min(c13,LL);
if TH[length-1] > 0 and TL[length-1] > 0 then
{
sumTR = 0;
for cnt = 0 to length-1
{
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/length;
}
}
var:size(0),sum(0);
Array : CC[101](0),a[101](0),b[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx+1;
for cnt = 1 to 100
{
CC[cnt] = CC[cnt-1][1];
a[cnt] = a[cnt-1][1];
b[cnt] = b[cnt-1][1];
}
if a[1] > a[2] and a[2] > 0 Then
{
Condition1 = true;
value1 = idx[1];
}
if b[1] < b[2] and b[2] > 0 Then
{
Condition2 = true;
Value2 = idx[1];
}
}
CC[0] = C;
if Condition1 == true Then
var1 = idx-value1;
if Condition2 == true Then
var2 = idx-Value2;
if a[2] > 0 and b[2] > 0 then
size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 ,atrv , tr[0]);
Else
size = 0;
if a[1] == 0 Then
{
a[0] = CC[0] - size/pow(length,2)*(var1*mult);
}
Else if idx > 3 Then
{
a[0] = max(CC[0],a[1]) - size/pow(length,2)*(var1*mult);
}
if b[1] == 0 Then
{
b[0] = CC[0] + size/pow(length,2)*(Var2*mult);
}
Else if idx > 3 Then
{
b[0] = min(CC[0],b[1]) + size/pow(length,2)*(Var2*mult);
}
var11 = (a[0]+b[0])/2;
Var3 = CC[0]-var11;
if a[sig-1] > 0 and b[sig-1] > 0 Then
{
sum = 0;
For cnt = 0 to sig-1
{
sum = sum + (CC[cnt] - (a[cnt]+b[cnt])/2);
}
Var33 = sum/sig;
}
}
답변 1
예스스탁
예스스탁 답변
2020-11-09 15:36:45
안녕하세요
예스스탁입니다.
올려주신 수식은 타주기로 작성해 드리기 어렵습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 뮬리 님이 쓴 글입니다.
> 제목 : 부탁 드립니다.
> 도움에 감사 드립니다.
질문 수식을 타주기(분봉용)식으로 어슬픈 지식으로 작성 해본것입니다.
1)타주기(분봉용)식을 정상적인지 검토와
2)타주기(틱봉용)과
3)타주기(분봉에서 일봉지표)식 부탁 드립니다.
미리 경배로 감사 인사 올립니다.
질문수식)
var : src(0),a(0),b(0),size(0);
if a[1] > a[2] Then
{
Condition1 = true;
var1 = 0;
}
Else
{
if Condition1 == true Then
var1 = var1+1;
}
if b[1] < b[2] Then
{
Condition2 = true;
var2 = 0;
}
Else
{
if Condition2 == true Then
var2 = var2+1;
}
size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 , atr(length) ,TrueRange);
a = max(c,a[1]) - size/pow(length,2)*(var1*mult);
b = min(c,b[1]) + size/pow(length,2)*(Var2*mult);
var11=(a+b)/2;
var3=c-var11;;
var33=ma(var3,sig);
*타주기(분봉)식
input : 타주기분(30),length(60),mult(1),sig(5);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),idx(0);
//타주기식_TrueRange
var : HH(0),LL(0),C1(0);
Array : cc10[101](0),TH[101](0),TL[101](0),TR[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
C1 = CC10[1];
for cnt = 1 to 100
{
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC10[0] = c;
TH[0] = max(C1,HH);
TL[0] = Min(C1,LL);
TR[0] = TH[0]-TL[0];
}
//타주기식_ATR
var : hht2(0),LL3(0),C13(0),CC3(0);
var : sumTR(0),ATRV(0);
Array : TH3[101](0),TL3[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
c13 = cc3[1];
for cnt = 1 to 100
{
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
cc3 = c;
TH[0] = max(c13,HH);
TL[0] = Min(c13,LL);
if TH[length-1] > 0 and TL[length-1] > 0 then
{
sumTR = 0;
for cnt = 0 to length-1
{
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/length;
}
}
var:size(0),sum(0);
Array : CC[101](0),a[101](0),b[101](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx+1;
for cnt = 1 to 100
{
CC[cnt] = CC[cnt-1][1];
a[cnt] = a[cnt-1][1];
b[cnt] = b[cnt-1][1];
}
if a[1] > a[2] and a[2] > 0 Then
{
Condition1 = true;
value1 = idx[1];
}
if b[1] < b[2] and b[2] > 0 Then
{
Condition2 = true;
Value2 = idx[1];
}
}
CC[0] = C;
if Condition1 == true Then
var1 = idx-value1;
if Condition2 == true Then
var2 = idx-Value2;
if a[2] > 0 and b[2] > 0 then
size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 ,atrv , tr[0]);
Else
size = 0;
if a[1] == 0 Then
{
a[0] = CC[0] - size/pow(length,2)*(var1*mult);
}
Else if idx > 3 Then
{
a[0] = max(CC[0],a[1]) - size/pow(length,2)*(var1*mult);
}
if b[1] == 0 Then
{
b[0] = CC[0] + size/pow(length,2)*(Var2*mult);
}
Else if idx > 3 Then
{
b[0] = min(CC[0],b[1]) + size/pow(length,2)*(Var2*mult);
}
var11 = (a[0]+b[0])/2;
Var3 = CC[0]-var11;
if a[sig-1] > 0 and b[sig-1] > 0 Then
{
sum = 0;
For cnt = 0 to sig-1
{
sum = sum + (CC[cnt] - (a[cnt]+b[cnt])/2);
}
Var33 = sum/sig;
}
}