커뮤니티

수식작성 부탁 드립니다

프로필 이미지
뎅이요
2025-10-30 13:46:45
108
글번호 227494
답변완료

아래의 수식에서 매수 기준에 1가지 더 추가하여 수식을 작성 부탁 드립니다 # 매수 If superTrend < data2(C) and    data2     input : ntime(5),factor(3), AtrPeriod(10);   추가수식          data2   input : ntime(5),factor(5), AtrPeriod(20);  2개의 기준으로 매수 진입 하도록 수식 작성 부탁 드립니다.
하루가 지난뒤 부터 챠트 시간이 다음날 0시부터 기록되어 나타납니다 정상 시간이 나타나도록 하는 방법을 알려 주세요.
   # Data1 Input : shortPeriod(5), longPeriod(20); value1 = ema(C, shortPeriod); value2 = ema(C, longPeriod); # Data2 input : ntime(5),factor(3), AtrPeriod(10); var : zS1(0,Data2),zD1(0,Data2),zTM(0,Data2),zTF(0,Data2),zHH(0,Data2),zLL(0,Data2),zC1(0,Data2); var : zsrc(0,Data2), AtrV(0,Data2),ATRv1(0,Data2),upperBand(0,Data2),lowerBand(0,Data2), prevLowerBand(0,Data2), prevUpperBand(0,Data2); var : prevSuperTrend(0,Data2), superTrend(0,Data2), direction(0,Data2),alpha(0,Data2),source(0,Data2); if data2(Bdate != Bdate[1]) Then { zS1 = data2(TimeToMinutes(stime)); zD1 = data2(sdate); } if zD1 > 0 then { if data2(sdate) == zD1 Then zTM = data2(TimeToMinutes(stime))-zS1; Else zTM = data2(TimeToMinutes(stime))+1440-zS1; zTF = zTM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and zTF < zTF[1]) or (Bdate == Bdate[1] and ntime > 1 and zTM >= zTM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and zTM > zTM[1]) Then { zHH = data2(H); zLL = data2(L); zC1 = data2(C[1]); ATRV1 = ATRV[1]; prevSuperTrend = superTrend[1]; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; } if data2(H) > zHH Then zHH = data2(H); if data2(L) < zLL Then zLL = data2(L); zsrc = (zHH+zLL)/2; if zC1 > 0 Then { alpha = 1 / AtrPeriod ; source = max(zHH - zLL, abs(zHH - zC1), abs(zLL - zC1)); ATrV = alpha * source + (1 - alpha) * ATrV1; upperBand = zsrc + factor * AtrV; lowerBand = zsrc - factor * AtrV; if lowerBand > prevLowerBand or zC1 < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or zC1 > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if prevSuperTrend == prevUpperBand Then { if C > upperBand Then direction = -1; Else direction = 1; } Else { if C < lowerBand Then direction = 1; Else direction = -1; } if direction == -1 Then superTrend = lowerBand; Else superTrend = upperBand; } } # 매수 If superTrend < data2(C) and CrossUP(value1, value2) Then { Buy(); } # 매수청산 If CrossDown(value1, value2) Then { Exitlong(); }

시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-30 14:55:41

안녕하세요 예스스탁입니다. # Data1 Input : shortPeriod(5), longPeriod(20); value1 = ema(C, shortPeriod); value2 = ema(C, longPeriod); # Data2 input : ntime(5),factor(3), AtrPeriod(10); input : ntime2(5),factor2(5), AtrPeriod2(20); var : zS1(0,Data2),zD1(0,Data2),zTM(0,Data2); var : zTF(0,Data2),zHH(0,Data2),zLL(0,Data2),zC1(0,Data2); var : zsrc(0,Data2), AtrV(0,Data2),ATRv1(0,Data2),upperBand(0,Data2),lowerBand(0,Data2), prevLowerBand(0,Data2), prevUpperBand(0,Data2); var : prevSuperTrend(0,Data2), superTrend(0,Data2), direction(0,Data2),alpha(0,Data2),source(0,Data2); var : xTF(0,Data2),xHH(0,Data2),xLL(0,Data2),xC1(0,Data2); var : xsrc(0,Data2), xAtrV(0,Data2),xATRv1(0,Data2),xupperBand(0,Data2),xlowerBand(0,Data2),xprevLowerBand(0,Data2),xprevUpperBand(0,Data2); var : xprevSuperTrend(0,Data2), superTrend2(0,Data2),xdirection(0,Data2),xalpha(0,Data2),xsource(0,Data2); if data2(Bdate != Bdate[1]) Then { zS1 = data2(TimeToMinutes(stime)); zD1 = data2(sdate); } if zD1 > 0 then { if data2(sdate) == zD1 Then zTM = data2(TimeToMinutes(stime))-zS1; Else zTM = data2(TimeToMinutes(stime))+1440-zS1; zTF = zTM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and zTF < zTF[1]) or (Bdate == Bdate[1] and ntime > 1 and zTM >= zTM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and zTM > zTM[1]) Then { zHH = data2(H); zLL = data2(L); zC1 = data2(C[1]); ATRV1 = ATRV[1]; prevSuperTrend = superTrend[1]; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; } if data2(H) > zHH Then zHH = data2(H); if data2(L) < zLL Then zLL = data2(L); zsrc = (zHH+zLL)/2; if zC1 > 0 Then { alpha = 1 / AtrPeriod ; source = max(zHH - zLL, abs(zHH - zC1), abs(zLL - zC1)); ATrV = alpha * source + (1 - alpha) * ATrV1; upperBand = zsrc + factor * AtrV; lowerBand = zsrc - factor * AtrV; if lowerBand > prevLowerBand or zC1 < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or zC1 > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if prevSuperTrend == prevUpperBand Then { if C > upperBand Then direction = -1; Else direction = 1; } Else { if C < lowerBand Then direction = 1; Else direction = -1; } if direction == -1 Then superTrend = lowerBand; Else superTrend = upperBand; } xTF = zTM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and xTF < xTF[1]) or (Bdate == Bdate[1] and ntime2 > 1 and zTM >= zTM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and zTM > zTM[1]) Then { xHH = data2(H); xLL = data2(L); xC1 = data2(C[1]); xATRV1 = xATRV[1]; xprevSuperTrend = superTrend2[1]; xprevLowerBand = xlowerBand[1]; xprevUpperBand = xupperBand[1]; } if data2(H) > xHH Then xHH = data2(H); if data2(L) < xLL Then xLL = data2(L); xsrc = (xHH+xLL)/2; if xC1 > 0 Then { xalpha = 1 / AtrPeriod2; xsource = max(xHH - xLL, abs(xHH - xC1), abs(xLL - xC1)); xATrV = xalpha * xsource + (1 - xalpha) * xATrV1; xupperBand = xsrc + factor2 * xAtrV; xlowerBand = xsrc - factor2 * xAtrV; if xlowerBand > xprevLowerBand or xC1 < xprevLowerBand Then xlowerBand = xlowerBand; Else xlowerBand = xprevLowerBand; if xupperBand < xprevUpperBand or xC1 > xprevUpperBand Then xupperBand = xupperBand; Else xupperBand = xprevUpperBand; if xprevSuperTrend == xprevUpperBand Then { if C > xupperBand Then xdirection = -1; Else xdirection = 1; } Else { if C < xlowerBand Then xdirection = 1; Else xdirection = -1; } if xdirection == -1 Then superTrend2 = xlowerBand; Else superTrend2 = xupperBand; } } # 매수 If superTrend < data2(C) and superTrend2 < data2(C) and CrossUP(value1, value2) Then { Buy(); } # 매수청산 If CrossDown(value1, value2) Then { Exitlong(); } 즐거운 하루되세요