커뮤니티

수식문의

프로필 이미지
softtoug
2021-05-24 14:25:26
1487
글번호 149272
답변완료
안녕하세요 하기 확인 부탁드립니다. 5가지 시간대 분봉으로 5가지의 볼린져 밴드가 한 개의 전략 실행챠트에 보여지게 끔 부탁드립니다. 기준은 가운데 시간봉으로 부탁드립니다. 예를 들어 5분 15분 30분 1시간 2시간 이렇게잡으면 30분봉이 기준 시간대로 되게끔 부탁드립니다.. 시간대별 봉 설정은 제가 조정가능하게 부탁드립니다. 진입 1. 15분봉을 기준으로 볼린져 밴드 상단에서 MACD 오실레이터가 음을 나타내면 매도 진입 2개 부탁드립니다. 반대로 볼린져 밴드 하단에서 MACD 오실레이터가 양을 나타내면 매수 진입 1개 부탁드립니다. 2. 매도 진입시 가격이 기준시간대 봉보다 큰 시간대의 봉이 MACD 오실레이터가 양을 나타내고 있으면, 진입후 볼린져 밴드 하단에 닿으면 전량 청산 부탁드립니다. 큰시간대의 봉이 MACD가 음으로 바뀌었으면, 기준봉보다 한단계 큰 시간봉의 MACD 오실레이터가 양으로 바뀌면 청산 부탁드립니다. 매수도 마찬가지로 역으로 진행 부탁드립니다. 감사합니다
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2021-05-25 14:58:08

안녕하세요 예스스탁입니다. 1 input : 타주기분1(5),P1(20),Dv1(2); input : 타주기분2(15),P2(20),Dv2(2); input : 타주기분3(30),P3(20),Dv3(2); input : 타주기분4(60),P4(20),Dv4(2); input : 타주기분5(120),P5(20),Dv5(2); var : S1(0),D1(0),TM(0),cnt(0); var : TF1(0),TF2(0),TF3(0),TF4(0),TF5(0); var : SumSqrt1(0),Stdv1(0),sum1(0),BBmd1(0),Bbup1(0),BBdn1(0); var : SumSqrt2(0),Stdv2(0),sum2(0),BBmd2(0),Bbup2(0),BBdn2(0); var : SumSqrt3(0),Stdv3(0),sum3(0),BBmd3(0),Bbup3(0),BBdn3(0); var : SumSqrt4(0),Stdv4(0),sum4(0),BBmd4(0),Bbup4(0),BBdn4(0); var : SumSqrt5(0),Stdv5(0),sum5(0),BBmd5(0),Bbup5(0),BBdn5(0); Array : C1[100](0),C2[100](0),C3[100](0),C4[100](0),C5[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; TF1 = TM%타주기분1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or (Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P1] > 0 then { sum1 = 0; for cnt = 0 to P1-1{ sum1 = sum1 + C1[cnt]; } BBmd1 = sum1/P1; SumSqrt1 = 0; For cnt = 0 To P1 - 1 { SumSqrt1 = SumSqrt1 + (C1[cnt] - BBmd1)^2; } Stdv1 = SquareRoot(SumSqrt1/ P1); BBup1 = BBmd1 + (Dv1 * Stdv1); BBdn1 = BBmd1 - (Dv1 * Stdv1); plot1(BBmd1); plot2(BBup1); plot3(BBdn1); } TF2 = TM%타주기분2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분2) or (Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C2[cnt] = C2[cnt-1][1]; } } C2[0] = C; if C2[P2] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2 + C2[cnt]; } BBmd2 = sum2/P2; SumSqrt2 = 0; For cnt = 0 To P2 - 1 { SumSqrt2 = SumSqrt2 + (C2[cnt] - BBmd2)^2; } Stdv2 = SquareRoot(SumSqrt2/ P2); BBup2 = BBmd2 + (Dv2 * Stdv2); BBdn2 = BBmd2 - (Dv2 * Stdv2); plot4(BBmd2); plot5(BBup2); plot6(BBdn2); } TF3 = TM%타주기분3; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or (Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or (Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C3[cnt] = C3[cnt-1][1]; } } C3[0] = C; if C3[P3] > 0 then { sum3 = 0; for cnt = 0 to P3-1 { sum3 = sum3 + C3[cnt]; } BBmd3 = sum3/P3; SumSqrt3 = 0; For cnt = 0 To P3 - 1 { SumSqrt3 = SumSqrt3 + (C3[cnt] - BBmd3)^2; } Stdv3 = SquareRoot(SumSqrt3/ P3); BBup3 = BBmd3 + (Dv3 * Stdv3); BBdn3 = BBmd3 - (Dv3 * Stdv3); plot7(BBmd3); plot8(BBup3); plot9(BBdn3); } TF4 = TM%타주기분4; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분4 > 1 and TF4 < TF4[1]) or (Bdate == Bdate[1] and 타주기분4 > 1 and TM >= TM[1]+타주기분4) or (Bdate == Bdate[1] and 타주기분4 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C4[cnt] = C4[cnt-1][1]; } } C4[0] = C; if C4[P4] > 0 then { sum4 = 0; for cnt = 0 to P4-1 { sum4 = sum4 + C4[cnt]; } BBmd4 = sum4/P4; SumSqrt4 = 0; For cnt = 0 To P4 - 1 { SumSqrt4 = SumSqrt4 + (C4[cnt] - BBmd4)^2; } Stdv4 = SquareRoot(SumSqrt4/ P4); BBup4 = BBmd4 + (Dv4 * Stdv4); BBdn4 = BBmd4 - (Dv4 * Stdv4); plot10(BBmd4); plot11(BBup4); plot12(BBdn4); } TF5 = TM%타주기분5; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분5 > 1 and TF5 < TF5[1]) or (Bdate == Bdate[1] and 타주기분5 > 1 and TM >= TM[1]+타주기분5) or (Bdate == Bdate[1] and 타주기분5 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C5[cnt] = C5[cnt-1][1]; } } C5[0] = C; if C5[P5] > 0 then { sum5 = 0; for cnt = 0 to P5-1 { sum5 = sum5 + C5[cnt]; } BBmd5 = sum5/P5; SumSqrt5 = 0; For cnt = 0 To P5 - 1 { SumSqrt5 = SumSqrt5 + (C5[cnt] - BBmd5)^2; } Stdv5 = SquareRoot(SumSqrt5/ P5); BBup5 = BBmd5 + (Dv5 * Stdv5); BBdn5 = BBmd5 - (Dv5 * Stdv5); plot13(BBmd5); plot14(BBup5); plot15(BBdn5); } } 2 Input : Period(20), MultiD(2); input : 타주기분(30),short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),PretMACDV(0),PretMACDS(0),PretMACDO(0); var : BBmd(0),BBup(0),BBdn(0); Var : macdv(0),macds(0),macdo(0); Var : tmacdv(0),tmacds(0),tmacdo(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); macdv = MACD(short, long); macds = ema(macdv,sig); macdo = macdv-macds; Ep1 = 2/(short+1); Ep2 = 2/(long+1); Ep3 = 2/(sig+1); 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; Prexma1 = xma1[1]; Prexma2 = xma2[1]; PretMACDV = tMACDV[1]; PretMACDS = tMACDS[1]; PretMACDO = tMACDO[1]; } if idx <= 1 then { xma1 = C; xma2 = C; tMACDV = xma1-xma2; tMACDS = tMACDV; tMACDO = tMACDV-tMACDS; } else{ xma1 = C * EP1 + Prexma1 * (1-EP1); xma2 = C * EP2 + Prexma2 * (1-EP2); tMACDV = xma1-xma2; tMACDS = tMACDV * EP3 + PretMACDS * (1-EP3); tMACDO = tMACDV-tMACDS; } if c > bbup and macdo < 0 Then Sell("s",OnClose,DEF,2); if c < bbdn and macdo > 0 Then Buy("b",OnClose,DEF,2); if MarketPosition == 1 and Tmacdo[BarsSinceEntry] < 0 and CrossUp(c,bbup) Then ExitLong(); if MarketPosition == -1 and Tmacdo[BarsSinceEntry] > 0 and CrossDown(c,bbdn) Then ExitShort(); } 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 수식문의 > 안녕하세요 하기 확인 부탁드립니다. 5가지 시간대 분봉으로 5가지의 볼린져 밴드가 한 개의 전략 실행챠트에 보여지게 끔 부탁드립니다. 기준은 가운데 시간봉으로 부탁드립니다. 예를 들어 5분 15분 30분 1시간 2시간 이렇게잡으면 30분봉이 기준 시간대로 되게끔 부탁드립니다.. 시간대별 봉 설정은 제가 조정가능하게 부탁드립니다. 진입 1. 15분봉을 기준으로 볼린져 밴드 상단에서 MACD 오실레이터가 음을 나타내면 매도 진입 2개 부탁드립니다. 반대로 볼린져 밴드 하단에서 MACD 오실레이터가 양을 나타내면 매수 진입 1개 부탁드립니다. 2. 매도 진입시 가격이 기준시간대 봉보다 큰 시간대의 봉이 MACD 오실레이터가 양을 나타내고 있으면, 진입후 볼린져 밴드 하단에 닿으면 전량 청산 부탁드립니다. 큰시간대의 봉이 MACD가 음으로 바뀌었으면, 기준봉보다 한단계 큰 시간봉의 MACD 오실레이터가 양으로 바뀌면 청산 부탁드립니다. 매수도 마찬가지로 역으로 진행 부탁드립니다. 감사합니다
프로필 이미지

softtoug

2021-06-01 10:23:11

안녕하세요 보내주신 주식 정말 잘 받았습니다. 죄송하지만 작동이 되지 않고 있어서 타주기분이라고 쓰여진 부분이 에러가 나고 있습니다. 어떻게 해야 하는지요? 도움 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스탁입니다. 1 input : 타주기분1(5),P1(20),Dv1(2); input : 타주기분2(15),P2(20),Dv2(2); input : 타주기분3(30),P3(20),Dv3(2); input : 타주기분4(60),P4(20),Dv4(2); input : 타주기분5(120),P5(20),Dv5(2); var : S1(0),D1(0),TM(0),cnt(0); var : TF1(0),TF2(0),TF3(0),TF4(0),TF5(0); var : SumSqrt1(0),Stdv1(0),sum1(0),BBmd1(0),Bbup1(0),BBdn1(0); var : SumSqrt2(0),Stdv2(0),sum2(0),BBmd2(0),Bbup2(0),BBdn2(0); var : SumSqrt3(0),Stdv3(0),sum3(0),BBmd3(0),Bbup3(0),BBdn3(0); var : SumSqrt4(0),Stdv4(0),sum4(0),BBmd4(0),Bbup4(0),BBdn4(0); var : SumSqrt5(0),Stdv5(0),sum5(0),BBmd5(0),Bbup5(0),BBdn5(0); Array : C1[100](0),C2[100](0),C3[100](0),C4[100](0),C5[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; TF1 = TM%타주기분1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or (Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P1] > 0 then { sum1 = 0; for cnt = 0 to P1-1{ sum1 = sum1 + C1[cnt]; } BBmd1 = sum1/P1; SumSqrt1 = 0; For cnt = 0 To P1 - 1 { SumSqrt1 = SumSqrt1 + (C1[cnt] - BBmd1)^2; } Stdv1 = SquareRoot(SumSqrt1/ P1); BBup1 = BBmd1 + (Dv1 * Stdv1); BBdn1 = BBmd1 - (Dv1 * Stdv1); plot1(BBmd1); plot2(BBup1); plot3(BBdn1); } TF2 = TM%타주기분2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분2) or (Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C2[cnt] = C2[cnt-1][1]; } } C2[0] = C; if C2[P2] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2 + C2[cnt]; } BBmd2 = sum2/P2; SumSqrt2 = 0; For cnt = 0 To P2 - 1 { SumSqrt2 = SumSqrt2 + (C2[cnt] - BBmd2)^2; } Stdv2 = SquareRoot(SumSqrt2/ P2); BBup2 = BBmd2 + (Dv2 * Stdv2); BBdn2 = BBmd2 - (Dv2 * Stdv2); plot4(BBmd2); plot5(BBup2); plot6(BBdn2); } TF3 = TM%타주기분3; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or (Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or (Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C3[cnt] = C3[cnt-1][1]; } } C3[0] = C; if C3[P3] > 0 then { sum3 = 0; for cnt = 0 to P3-1 { sum3 = sum3 + C3[cnt]; } BBmd3 = sum3/P3; SumSqrt3 = 0; For cnt = 0 To P3 - 1 { SumSqrt3 = SumSqrt3 + (C3[cnt] - BBmd3)^2; } Stdv3 = SquareRoot(SumSqrt3/ P3); BBup3 = BBmd3 + (Dv3 * Stdv3); BBdn3 = BBmd3 - (Dv3 * Stdv3); plot7(BBmd3); plot8(BBup3); plot9(BBdn3); } TF4 = TM%타주기분4; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분4 > 1 and TF4 < TF4[1]) or (Bdate == Bdate[1] and 타주기분4 > 1 and TM >= TM[1]+타주기분4) or (Bdate == Bdate[1] and 타주기분4 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C4[cnt] = C4[cnt-1][1]; } } C4[0] = C; if C4[P4] > 0 then { sum4 = 0; for cnt = 0 to P4-1 { sum4 = sum4 + C4[cnt]; } BBmd4 = sum4/P4; SumSqrt4 = 0; For cnt = 0 To P4 - 1 { SumSqrt4 = SumSqrt4 + (C4[cnt] - BBmd4)^2; } Stdv4 = SquareRoot(SumSqrt4/ P4); BBup4 = BBmd4 + (Dv4 * Stdv4); BBdn4 = BBmd4 - (Dv4 * Stdv4); plot10(BBmd4); plot11(BBup4); plot12(BBdn4); } TF5 = TM%타주기분5; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분5 > 1 and TF5 < TF5[1]) or (Bdate == Bdate[1] and 타주기분5 > 1 and TM >= TM[1]+타주기분5) or (Bdate == Bdate[1] and 타주기분5 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C5[cnt] = C5[cnt-1][1]; } } C5[0] = C; if C5[P5] > 0 then { sum5 = 0; for cnt = 0 to P5-1 { sum5 = sum5 + C5[cnt]; } BBmd5 = sum5/P5; SumSqrt5 = 0; For cnt = 0 To P5 - 1 { SumSqrt5 = SumSqrt5 + (C5[cnt] - BBmd5)^2; } Stdv5 = SquareRoot(SumSqrt5/ P5); BBup5 = BBmd5 + (Dv5 * Stdv5); BBdn5 = BBmd5 - (Dv5 * Stdv5); plot13(BBmd5); plot14(BBup5); plot15(BBdn5); } } 2 Input : Period(20), MultiD(2); input : 타주기분(30),short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),PretMACDV(0),PretMACDS(0),PretMACDO(0); var : BBmd(0),BBup(0),BBdn(0); Var : macdv(0),macds(0),macdo(0); Var : tmacdv(0),tmacds(0),tmacdo(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); macdv = MACD(short, long); macds = ema(macdv,sig); macdo = macdv-macds; Ep1 = 2/(short+1); Ep2 = 2/(long+1); Ep3 = 2/(sig+1); 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; Prexma1 = xma1[1]; Prexma2 = xma2[1]; PretMACDV = tMACDV[1]; PretMACDS = tMACDS[1]; PretMACDO = tMACDO[1]; } if idx <= 1 then { xma1 = C; xma2 = C; tMACDV = xma1-xma2; tMACDS = tMACDV; tMACDO = tMACDV-tMACDS; } else{ xma1 = C * EP1 + Prexma1 * (1-EP1); xma2 = C * EP2 + Prexma2 * (1-EP2); tMACDV = xma1-xma2; tMACDS = tMACDV * EP3 + PretMACDS * (1-EP3); tMACDO = tMACDV-tMACDS; } if c > bbup and macdo < 0 Then Sell("s",OnClose,DEF,2); if c < bbdn and macdo > 0 Then Buy("b",OnClose,DEF,2); if MarketPosition == 1 and Tmacdo[BarsSinceEntry] < 0 and CrossUp(c,bbup) Then ExitLong(); if MarketPosition == -1 and Tmacdo[BarsSinceEntry] > 0 and CrossDown(c,bbdn) Then ExitShort(); } 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 수식문의 > 안녕하세요 하기 확인 부탁드립니다. 5가지 시간대 분봉으로 5가지의 볼린져 밴드가 한 개의 전략 실행챠트에 보여지게 끔 부탁드립니다. 기준은 가운데 시간봉으로 부탁드립니다. 예를 들어 5분 15분 30분 1시간 2시간 이렇게잡으면 30분봉이 기준 시간대로 되게끔 부탁드립니다.. 시간대별 봉 설정은 제가 조정가능하게 부탁드립니다. 진입 1. 15분봉을 기준으로 볼린져 밴드 상단에서 MACD 오실레이터가 음을 나타내면 매도 진입 2개 부탁드립니다. 반대로 볼린져 밴드 하단에서 MACD 오실레이터가 양을 나타내면 매수 진입 1개 부탁드립니다. 2. 매도 진입시 가격이 기준시간대 봉보다 큰 시간대의 봉이 MACD 오실레이터가 양을 나타내고 있으면, 진입후 볼린져 밴드 하단에 닿으면 전량 청산 부탁드립니다. 큰시간대의 봉이 MACD가 음으로 바뀌었으면, 기준봉보다 한단계 큰 시간봉의 MACD 오실레이터가 양으로 바뀌면 청산 부탁드립니다. 매수도 마찬가지로 역으로 진행 부탁드립니다. 감사합니다
프로필 이미지

softtoug

2021-06-01 10:23:16

안녕하세요 보내주신 주식 정말 잘 받았습니다. 죄송하지만 작동이 되지 않고 있어서 타주기분이라고 쓰여진 부분이 에러가 나고 있습니다. 어떻게 해야 하는지요? 도움 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스탁입니다. 1 input : 타주기분1(5),P1(20),Dv1(2); input : 타주기분2(15),P2(20),Dv2(2); input : 타주기분3(30),P3(20),Dv3(2); input : 타주기분4(60),P4(20),Dv4(2); input : 타주기분5(120),P5(20),Dv5(2); var : S1(0),D1(0),TM(0),cnt(0); var : TF1(0),TF2(0),TF3(0),TF4(0),TF5(0); var : SumSqrt1(0),Stdv1(0),sum1(0),BBmd1(0),Bbup1(0),BBdn1(0); var : SumSqrt2(0),Stdv2(0),sum2(0),BBmd2(0),Bbup2(0),BBdn2(0); var : SumSqrt3(0),Stdv3(0),sum3(0),BBmd3(0),Bbup3(0),BBdn3(0); var : SumSqrt4(0),Stdv4(0),sum4(0),BBmd4(0),Bbup4(0),BBdn4(0); var : SumSqrt5(0),Stdv5(0),sum5(0),BBmd5(0),Bbup5(0),BBdn5(0); Array : C1[100](0),C2[100](0),C3[100](0),C4[100](0),C5[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; TF1 = TM%타주기분1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or (Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P1] > 0 then { sum1 = 0; for cnt = 0 to P1-1{ sum1 = sum1 + C1[cnt]; } BBmd1 = sum1/P1; SumSqrt1 = 0; For cnt = 0 To P1 - 1 { SumSqrt1 = SumSqrt1 + (C1[cnt] - BBmd1)^2; } Stdv1 = SquareRoot(SumSqrt1/ P1); BBup1 = BBmd1 + (Dv1 * Stdv1); BBdn1 = BBmd1 - (Dv1 * Stdv1); plot1(BBmd1); plot2(BBup1); plot3(BBdn1); } TF2 = TM%타주기분2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분2) or (Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C2[cnt] = C2[cnt-1][1]; } } C2[0] = C; if C2[P2] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2 + C2[cnt]; } BBmd2 = sum2/P2; SumSqrt2 = 0; For cnt = 0 To P2 - 1 { SumSqrt2 = SumSqrt2 + (C2[cnt] - BBmd2)^2; } Stdv2 = SquareRoot(SumSqrt2/ P2); BBup2 = BBmd2 + (Dv2 * Stdv2); BBdn2 = BBmd2 - (Dv2 * Stdv2); plot4(BBmd2); plot5(BBup2); plot6(BBdn2); } TF3 = TM%타주기분3; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or (Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or (Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C3[cnt] = C3[cnt-1][1]; } } C3[0] = C; if C3[P3] > 0 then { sum3 = 0; for cnt = 0 to P3-1 { sum3 = sum3 + C3[cnt]; } BBmd3 = sum3/P3; SumSqrt3 = 0; For cnt = 0 To P3 - 1 { SumSqrt3 = SumSqrt3 + (C3[cnt] - BBmd3)^2; } Stdv3 = SquareRoot(SumSqrt3/ P3); BBup3 = BBmd3 + (Dv3 * Stdv3); BBdn3 = BBmd3 - (Dv3 * Stdv3); plot7(BBmd3); plot8(BBup3); plot9(BBdn3); } TF4 = TM%타주기분4; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분4 > 1 and TF4 < TF4[1]) or (Bdate == Bdate[1] and 타주기분4 > 1 and TM >= TM[1]+타주기분4) or (Bdate == Bdate[1] and 타주기분4 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C4[cnt] = C4[cnt-1][1]; } } C4[0] = C; if C4[P4] > 0 then { sum4 = 0; for cnt = 0 to P4-1 { sum4 = sum4 + C4[cnt]; } BBmd4 = sum4/P4; SumSqrt4 = 0; For cnt = 0 To P4 - 1 { SumSqrt4 = SumSqrt4 + (C4[cnt] - BBmd4)^2; } Stdv4 = SquareRoot(SumSqrt4/ P4); BBup4 = BBmd4 + (Dv4 * Stdv4); BBdn4 = BBmd4 - (Dv4 * Stdv4); plot10(BBmd4); plot11(BBup4); plot12(BBdn4); } TF5 = TM%타주기분5; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분5 > 1 and TF5 < TF5[1]) or (Bdate == Bdate[1] and 타주기분5 > 1 and TM >= TM[1]+타주기분5) or (Bdate == Bdate[1] and 타주기분5 == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C5[cnt] = C5[cnt-1][1]; } } C5[0] = C; if C5[P5] > 0 then { sum5 = 0; for cnt = 0 to P5-1 { sum5 = sum5 + C5[cnt]; } BBmd5 = sum5/P5; SumSqrt5 = 0; For cnt = 0 To P5 - 1 { SumSqrt5 = SumSqrt5 + (C5[cnt] - BBmd5)^2; } Stdv5 = SquareRoot(SumSqrt5/ P5); BBup5 = BBmd5 + (Dv5 * Stdv5); BBdn5 = BBmd5 - (Dv5 * Stdv5); plot13(BBmd5); plot14(BBup5); plot15(BBdn5); } } 2 Input : Period(20), MultiD(2); input : 타주기분(30),short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),PretMACDV(0),PretMACDS(0),PretMACDO(0); var : BBmd(0),BBup(0),BBdn(0); Var : macdv(0),macds(0),macdo(0); Var : tmacdv(0),tmacds(0),tmacdo(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); macdv = MACD(short, long); macds = ema(macdv,sig); macdo = macdv-macds; Ep1 = 2/(short+1); Ep2 = 2/(long+1); Ep3 = 2/(sig+1); 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; Prexma1 = xma1[1]; Prexma2 = xma2[1]; PretMACDV = tMACDV[1]; PretMACDS = tMACDS[1]; PretMACDO = tMACDO[1]; } if idx <= 1 then { xma1 = C; xma2 = C; tMACDV = xma1-xma2; tMACDS = tMACDV; tMACDO = tMACDV-tMACDS; } else{ xma1 = C * EP1 + Prexma1 * (1-EP1); xma2 = C * EP2 + Prexma2 * (1-EP2); tMACDV = xma1-xma2; tMACDS = tMACDV * EP3 + PretMACDS * (1-EP3); tMACDO = tMACDV-tMACDS; } if c > bbup and macdo < 0 Then Sell("s",OnClose,DEF,2); if c < bbdn and macdo > 0 Then Buy("b",OnClose,DEF,2); if MarketPosition == 1 and Tmacdo[BarsSinceEntry] < 0 and CrossUp(c,bbup) Then ExitLong(); if MarketPosition == -1 and Tmacdo[BarsSinceEntry] > 0 and CrossDown(c,bbdn) Then ExitShort(); } 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 수식문의 > 안녕하세요 하기 확인 부탁드립니다. 5가지 시간대 분봉으로 5가지의 볼린져 밴드가 한 개의 전략 실행챠트에 보여지게 끔 부탁드립니다. 기준은 가운데 시간봉으로 부탁드립니다. 예를 들어 5분 15분 30분 1시간 2시간 이렇게잡으면 30분봉이 기준 시간대로 되게끔 부탁드립니다.. 시간대별 봉 설정은 제가 조정가능하게 부탁드립니다. 진입 1. 15분봉을 기준으로 볼린져 밴드 상단에서 MACD 오실레이터가 음을 나타내면 매도 진입 2개 부탁드립니다. 반대로 볼린져 밴드 하단에서 MACD 오실레이터가 양을 나타내면 매수 진입 1개 부탁드립니다. 2. 매도 진입시 가격이 기준시간대 봉보다 큰 시간대의 봉이 MACD 오실레이터가 양을 나타내고 있으면, 진입후 볼린져 밴드 하단에 닿으면 전량 청산 부탁드립니다. 큰시간대의 봉이 MACD가 음으로 바뀌었으면, 기준봉보다 한단계 큰 시간봉의 MACD 오실레이터가 양으로 바뀌면 청산 부탁드립니다. 매수도 마찬가지로 역으로 진행 부탁드립니다. 감사합니다