커뮤니티

시스템식으로 변환 요청

프로필 이미지
탄젠트80
2024-10-24 07:51:32
666
글번호 184544
답변완료
안녕하세요 아래의 지표를 시스템매수식으로 변환하여 주시면 감사하겠습니다. plot3 이면 매수 plot4면 매도하는 식으로 변경 부탁 간곡히 드립니다. (참고페이지) https://blog.naver.com/chartist/222656653057 답변 미리 감사드립니다. ---------------------------------------------------------------------------------- input : SwingPeriod(2), AtrPeriod(10), ATrMult(3); var : PH(0), PL(0), lastpp(0), center(0), alPHa(0), source(0), ATrV(0); var : UpCh(0), DnCh(0), Trend(0), TuP(0), Tdown(0), TrailingSL(0); # 스윙하이와 스윙로우를 이용하여 중심선 계산 PH = swingHigh(1,H,SwingPeriod,SwingPeriod,SwingPeriod*2+1); PL = swingLow(1,L,SwingPeriod,SwingPeriod,SwingPeriod*2+1); if PH <> -1 Then lastpp = PH; if PL <> -1 Then lastpp = PL; if PH <> -1 or PL <> -1 Then center = (center*2 + lastpp)/3; # ATR계산(True Range를 RMA로 평균) if CurrentBar > 0 Then { alPHa = 1 / AtrPeriod ; source = max(H - L, abs(H - C[1]), abs(L - C[1])); ATrV = alPHa * source + (1 - alPHa) * ATrV[1]; } # 상하단 채널과 추세에 따른 추세채널 UpCh = center - (ATrMult * ATrV); DnCh = center + (ATrMult * ATrV); Tup = IFf(C[1] > TUp[1],max(UpCh, TUp[1]),UpCh ); Tdown = IFf(C[1] < TDown[1],min(DnCh, TDown[1]),DnCh ); if C > TDown[1] Then Trend = 1; if C < TuP[1] Then Trend = -1; Trailingsl = IFf(Trend == 1, Tup, Tdown); # 지표 출력 if C > Trailingsl Then { Plot1(Trailingsl,"UpTrend", RED, 0, 1); NoPlot(2); } Else { Plot2(Trailingsl,"DnTrend", BLUE, 0, 1); NoPlot(1); } if Trend == 1 and Trend[1] == -1 Then plot3(Trailingsl,"BuyStart", RED,0,8); if Trend == -1 and Trend[1] == 1 Then plot4(Trailingsl,"SellStart", BLUE,0,8); ==================================================================================== swingHigh 와 swingLow 지표 설명 input : Length(5); var : HighV(0), LowV(0); var : Hdate0(0), Hdate1(0), Htime0(0), Htime1(0), Hval(0), TL1(0); var : Ldate0(0), Ldate1(0), Ltime0(0), Ltime1(0), Lval(0), TL2(0); HighV = SwingHigh(1, H, Length, Length, Length*2+1); LowV = SwingLow(1, L, Length, Length, Length*2+1); if HighV == -1 Then HighV = HighV[1]; if LowV == -1 Then LowV = LowV[1]; # 그래프 종류 속성 점그래프 Plot1(HighV,"swHigh",MAGENTA,0,4); Plot2(LowV,"swLow",GREEN,0,4); Plot3(HighV,"swHigh확장",MAGENTA,0,4); Plot4(LowV,"swLow확장",GREEN,0,4); FixPlotShift(1,-Length); FixPlotShift(2,-Length);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-10-24 15:55:56

안녕하세요 예스스탁입니다. input : SwingPeriod(2), AtrPeriod(10), ATrMult(3); var : PH(0), PL(0), lastpp(0), center(0), alPHa(0), source(0), ATrV(0); var : UpCh(0), DnCh(0), Trend(0), TuP(0), Tdown(0), TrailingSL(0); # 스윙하이와 스윙로우를 이용하여 중심선 계산 PH = swingHigh(1,H,SwingPeriod,SwingPeriod,SwingPeriod*2+1); PL = swingLow(1,L,SwingPeriod,SwingPeriod,SwingPeriod*2+1); if PH <> -1 Then lastpp = PH; if PL <> -1 Then lastpp = PL; if PH <> -1 or PL <> -1 Then center = (center*2 + lastpp)/3; # ATR계산(True Range를 RMA로 평균) if CurrentBar > 0 Then { alPHa = 1 / AtrPeriod ; source = max(H - L, abs(H - C[1]), abs(L - C[1])); ATrV = alPHa * source + (1 - alPHa) * ATrV[1]; } # 상하단 채널과 추세에 따른 추세채널 UpCh = center - (ATrMult * ATrV); DnCh = center + (ATrMult * ATrV); Tup = IFf(C[1] > TUp[1],max(UpCh, TUp[1]),UpCh ); Tdown = IFf(C[1] < TDown[1],min(DnCh, TDown[1]),DnCh ); if C > TDown[1] Then Trend = 1; if C < TuP[1] Then Trend = -1; Trailingsl = IFf(Trend == 1, Tup, Tdown); if Trend == 1 and Trend[1] == -1 Then Buy(); if Trend == -1 and Trend[1] == 1 Then Sell(); 즐거운 하루되세요 > 탄젠트80 님이 쓴 글입니다. > 제목 : 시스템식으로 변환 요청 > 안녕하세요 아래의 지표를 시스템매수식으로 변환하여 주시면 감사하겠습니다. plot3 이면 매수 plot4면 매도하는 식으로 변경 부탁 간곡히 드립니다. (참고페이지) https://blog.naver.com/chartist/222656653057 답변 미리 감사드립니다. ---------------------------------------------------------------------------------- input : SwingPeriod(2), AtrPeriod(10), ATrMult(3); var : PH(0), PL(0), lastpp(0), center(0), alPHa(0), source(0), ATrV(0); var : UpCh(0), DnCh(0), Trend(0), TuP(0), Tdown(0), TrailingSL(0); # 스윙하이와 스윙로우를 이용하여 중심선 계산 PH = swingHigh(1,H,SwingPeriod,SwingPeriod,SwingPeriod*2+1); PL = swingLow(1,L,SwingPeriod,SwingPeriod,SwingPeriod*2+1); if PH <> -1 Then lastpp = PH; if PL <> -1 Then lastpp = PL; if PH <> -1 or PL <> -1 Then center = (center*2 + lastpp)/3; # ATR계산(True Range를 RMA로 평균) if CurrentBar > 0 Then { alPHa = 1 / AtrPeriod ; source = max(H - L, abs(H - C[1]), abs(L - C[1])); ATrV = alPHa * source + (1 - alPHa) * ATrV[1]; } # 상하단 채널과 추세에 따른 추세채널 UpCh = center - (ATrMult * ATrV); DnCh = center + (ATrMult * ATrV); Tup = IFf(C[1] > TUp[1],max(UpCh, TUp[1]),UpCh ); Tdown = IFf(C[1] < TDown[1],min(DnCh, TDown[1]),DnCh ); if C > TDown[1] Then Trend = 1; if C < TuP[1] Then Trend = -1; Trailingsl = IFf(Trend == 1, Tup, Tdown); # 지표 출력 if C > Trailingsl Then { Plot1(Trailingsl,"UpTrend", RED, 0, 1); NoPlot(2); } Else { Plot2(Trailingsl,"DnTrend", BLUE, 0, 1); NoPlot(1); } if Trend == 1 and Trend[1] == -1 Then plot3(Trailingsl,"BuyStart", RED,0,8); if Trend == -1 and Trend[1] == 1 Then plot4(Trailingsl,"SellStart", BLUE,0,8); ==================================================================================== swingHigh 와 swingLow 지표 설명 input : Length(5); var : HighV(0), LowV(0); var : Hdate0(0), Hdate1(0), Htime0(0), Htime1(0), Hval(0), TL1(0); var : Ldate0(0), Ldate1(0), Ltime0(0), Ltime1(0), Lval(0), TL2(0); HighV = SwingHigh(1, H, Length, Length, Length*2+1); LowV = SwingLow(1, L, Length, Length, Length*2+1); if HighV == -1 Then HighV = HighV[1]; if LowV == -1 Then LowV = LowV[1]; # 그래프 종류 속성 점그래프 Plot1(HighV,"swHigh",MAGENTA,0,4); Plot2(LowV,"swLow",GREEN,0,4); Plot3(HighV,"swHigh확장",MAGENTA,0,4); Plot4(LowV,"swLow확장",GREEN,0,4); FixPlotShift(1,-Length); FixPlotShift(2,-Length);