예스스탁
예스스탁 답변
2020-02-04 15:26:41
안녕하세요
예스스탁입니다.
input : ntime(30),CCIP(9),ATRP(5),Multiplier(1),original(true);;
var : S1(0),D1(0),TM(0),TF(0);
Var : Sum(0), Counter(0), MD(0), Avgvalue(0);
var : cnt(0),sum1(0),mav(0),sumTR(0),ATRV(0);
var : thisCCI(0),lastCCI(0),bufferDn(0),bufferUp(0),bufferDn1(0),bufferUp1(0);
var : X(0),swap(0),swap2(0),swap3(0),swap4(0);
Array : CC[100](0),LL[100](0),HH[100](0),TH[100](0),TL[100](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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime == 1 and TM < TM[1]) or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM > TM+ntime) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
}
lastCCI = thisCCI[1];
bufferUp1 = bufferUp[1];
bufferDn1 = bufferDn[1];
}
CC[0] = C;
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
If HH[CCIP] > 0 Then Begin
sum1 = 0;
for cnt = 0 to CCIP-1
{
sum1 = sum1+(CC[cnt]+HH[cnt]+LL[cnt]);
}
Avgvalue = sum1/CCIP;
MD = 0;
For counter = 0 To CCIP - 1 Begin
MD = MD + Abs(HH[counter] + LL[counter] + CC[counter] - Avgvalue);
End;
MD = MD / CCIP;
If MD == 0 Then
thisCCI = 0;
Else
thisCCI = (HH[0] + LL[0] + CC[0] - Avgvalue) / (0.015 * MD);
End
Else
thisCCI = 0;
TH[0] = max(CC[1],HH[0]);
TL[0] = Min(CC[1],LL[0]);
if TH[ATRP-1] > 0 and TL[ATRP-1] > 0 then
{
sumTR = 0;
for cnt = 0 to ATRP-1
{
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/ATRP;
}
bufferDn = HH[0] + Multiplier * ATRV;
bufferUp = LL[0] - Multiplier * ATRV;
if (thisCCI >= 0 and lastCCI < 0) Then
bufferUp = bufferDn1;
if (thisCCI <= 0 and lastCCI > 0) Then
bufferDn = bufferUp1;
if (thisCCI >= 0) Then
{
if (bufferUp < bufferUp1) Then
bufferUp = bufferUp1;
}
else
{
if (thisCCI <= 0) Then
if (bufferDn > bufferDn1) Then
bufferDn = bufferDn1;
}
x = iff(thisCCI >= 0,bufferUp,iff(thisCCI <= 0,bufferDn,x[1]));
swap = iff(x>x[1],1,iff(x<x[1],-1,swap[1]));
swap2 = iff(swap==1,MAGENTA,red);
swap3 = iff(thisCCI >=0,MAGENTA,red);
swap4 = iff(original,swap3,swap2);
plot1(x,"x",swap4);
}
즐거운 하루되세요
> 까시서방 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다
> var : CCIP(20),ATRP(5),Multiplier(1),original(true);
var : thisCCI(0),lastCCI(0),bufferDn(0),bufferUp(0);
var : 추세X_1분(0),swap(0),swap2(0),swap3(0),swap4_1분(0);
thisCCI = cci(CCIP);
lastCCI = thisCCI[1];
bufferDn = high + Multiplier * ma(TrueRange,ATRP);
bufferUp = low - Multiplier * ma(TrueRange,ATRP);
if (thisCCI >= 0 and lastCCI < 0) Then bufferUp = bufferDn[1];
if (thisCCI <= 0 and lastCCI > 0) Then bufferDn = bufferUp[1];
if (thisCCI >= 0) Then
{
if (bufferUp < bufferUp[1]) Then
bufferUp = bufferUp[1];
}
else
{
if (thisCCI <= 0) Then
if (bufferDn > bufferDn[1]) Then
bufferDn = bufferDn[1];
}
추세X_1분 = iff(thisCCI >= 0,bufferUp,iff(thisCCI <= 0,bufferDn,추세X_1분[1]));
swap=iff(추세X_1분>추세X_1분[1],1,iff(추세X_1분<추세X_1분[1],-1,swap[1]));
swap2 = iff(swap==1,1,-1);
swap3 = iff(thisCCI >=0,1,-1);
swap4_1분 = iff(original,swap3,swap2);
plot1(추세X_1분,"x",IFF(swap4_1분 > 0, MAGENTA,BLACK),DEF,8);
타주기를 사용하진 않고 위 수식을 1분봉에서 10봉에 표현하고 싶습니다.
항상 노고에 감사드립니다