커뮤니티

문의드립니다~

프로필 이미지
겐지
2023-10-14 19:55:22
991
글번호 173090
답변완료
var : 분주기(60); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0),TFF(0),entry(false),tf2(0); Array : CC[100](0),OO[100](0),gHH[100](0),gLL[100](0),TT[100](0),ii[100](0),O2[100](0); Array : C1[300](0),T1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TFF = TM%60; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then{ OO[0] = o; gHH[0] = H; gLL[0] = L; //TT[0] = stime; //ii[0] = 0; for cnt = 1 to 300{ OO[cnt] = OO[cnt-1][1]; gHH[cnt] = gHH[cnt-1][1]; gLL[cnt] = gLL[cnt-1][1]; C1[cnt] = C1[cnt-1][1]; //TT[cnt] = TT[cnt-1][1]; //ii[cnt] = ii[cnt-1][1]; } } if H > gHH[0] Then gHH[0] = H; if L < gLL[0] Then gLL[0] = L; C1[0] = C; } 1분봉에 60분봉기준의 볼린저밴드를 표시하고 싶습니다. 60분봉기준 20평균에 승수2랑, 10평균에 승수3이랑 2개밴드를 표시하고 싶은데요. 완성봉기준으로 표시되기에 60분봉으로 봤을때에 실시간으로 밴드를 돌파하는 타이밍을 잡아낼수가 없어서 이렇게 표시할려고 하는데요. 도움 부탁드립니다. 분주기식은 위 식을 사용하고 있어요. 1분봉의 고가가 밴드2개를 동시에 돌파하고 완성된 시점에 매도 1분봉의 저가가 밴드2개를 동시에 아래로 이탈하고 완성된 시점에 매수
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-10-16 13:18:50

안녕하세요 예스스탁입니다. 1. 지표 var : 분주기(60); input : P1(20),Dv1(2),P2(10),Dv2(3); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),BBmd1(0),SumSqrt1(0),stdv1(0),BBup1(0),BBdn1(0); var : sum2(0),BBmd2(0),SumSqrt2(0),stdv2(0),BBup2(0),BBdn2(0); Array : CC[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then { For cnt = 99 DownTo 1 { CC[cnt] = CC[cnt-1]; } } CC[0] = C; if CC[P1-1] > 0 then { sum1 = 0; for cnt = 0 to P1-1 { sum1 = sum1 + CC[cnt]; } BBmd1 = sum1/P1; SumSqrt1 = 0; For cnt = 0 To P1 - 1 { SumSqrt1 = SumSqrt1 + (CC[cnt] - BBmd1)^2; } Stdv1 = SquareRoot(SumSqrt1 / P1); BBup1 = BBmd1 + (Dv1 * Stdv1); BBdn1 = BBmd1 - (Dv1 * Stdv1); Plot1(Bbup1,"상단1"); Plot2(Bbmd1,"중단1"); Plot3(Bbdn1,"하단1"); } if CC[P2-1] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2 + CC[cnt]; } BBmd2 = sum2/P2; SumSqrt2 = 0; For cnt = 0 To P2 - 1 { SumSqrt2 = SumSqrt2 + (CC[cnt] - BBmd2)^2; } Stdv2 = SquareRoot(SumSqrt2 / P2); BBup2 = BBmd2 + (Dv2 * Stdv2); BBdn2 = BBmd2 - (Dv2 * Stdv2); Plot4(Bbup2,"상단2"); Plot5(Bbmd2,"중단2"); Plot6(Bbdn2,"하단2"); } } 2. 시스템 var : 분주기(60); input : P1(20),Dv1(2),P2(10),Dv2(3); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),BBmd1(0),SumSqrt1(0),stdv1(0),BBup1(0),BBdn1(0); var : sum2(0),BBmd2(0),SumSqrt2(0),stdv2(0),BBup2(0),BBdn2(0); Array : CC[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then { For cnt = 99 DownTo 1 { CC[cnt] = CC[cnt-1]; } } CC[0] = C; if CC[P1-1] > 0 then { sum1 = 0; for cnt = 0 to P1-1 { sum1 = sum1 + CC[cnt]; } BBmd1 = sum1/P1; SumSqrt1 = 0; For cnt = 0 To P1 - 1 { SumSqrt1 = SumSqrt1 + (CC[cnt] - BBmd1)^2; } Stdv1 = SquareRoot(SumSqrt1 / P1); BBup1 = BBmd1 + (Dv1 * Stdv1); BBdn1 = BBmd1 - (Dv1 * Stdv1); } if CC[P2-1] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2 + CC[cnt]; } BBmd2 = sum2/P2; SumSqrt2 = 0; For cnt = 0 To P2 - 1 { SumSqrt2 = SumSqrt2 + (CC[cnt] - BBmd2)^2; } Stdv2 = SquareRoot(SumSqrt2 / P2); BBup2 = BBmd2 + (Dv2 * Stdv2); BBdn2 = BBmd2 - (Dv2 * Stdv2); } if CrossUp(H,BBup1) and CrossUp(H,bbup2) Then Sell(); if CrossDown(L,BBdn1) and CrossDown(L,bbdn2) Then Buy(); } 즐거운 하루되세요 > 겐지 님이 쓴 글입니다. > 제목 : 문의드립니다~ > var : 분주기(60); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0),TFF(0),entry(false),tf2(0); Array : CC[100](0),OO[100](0),gHH[100](0),gLL[100](0),TT[100](0),ii[100](0),O2[100](0); Array : C1[300](0),T1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TFF = TM%60; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then{ OO[0] = o; gHH[0] = H; gLL[0] = L; //TT[0] = stime; //ii[0] = 0; for cnt = 1 to 300{ OO[cnt] = OO[cnt-1][1]; gHH[cnt] = gHH[cnt-1][1]; gLL[cnt] = gLL[cnt-1][1]; C1[cnt] = C1[cnt-1][1]; //TT[cnt] = TT[cnt-1][1]; //ii[cnt] = ii[cnt-1][1]; } } if H > gHH[0] Then gHH[0] = H; if L < gLL[0] Then gLL[0] = L; C1[0] = C; } 1분봉에 60분봉기준의 볼린저밴드를 표시하고 싶습니다. 60분봉기준 20평균에 승수2랑, 10평균에 승수3이랑 2개밴드를 표시하고 싶은데요. 완성봉기준으로 표시되기에 60분봉으로 봤을때에 실시간으로 밴드를 돌파하는 타이밍을 잡아낼수가 없어서 이렇게 표시할려고 하는데요. 도움 부탁드립니다. 분주기식은 위 식을 사용하고 있어요. 1분봉의 고가가 밴드2개를 동시에 돌파하고 완성된 시점에 매도 1분봉의 저가가 밴드2개를 동시에 아래로 이탈하고 완성된 시점에 매수