커뮤니티

일봉 데이터를 분봉차트에서 매매

프로필 이미지
로카2
2025-09-01 13:53:32
60
글번호 193634
답변완료
안녕하세요 일봉 diplus > diminus 이고 ADX > 20 일때 분봉 차트에서 매수 일봉 diplus < diminus 일때 분봉 차트에서 매도 조건식이 작동할수 있는 함수 부탁드립니다!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-09-01 17:03:24

안녕하세요 예스스탁입니다. 계산상 과거봉수에 따라 영향을 받으므로 전략실행차트에 봉수를 최대한 많이 조회하고 적용하시기 바랍니다. 전략실행차트는 최대 2만봉 조회가 가능합니다. input : Length(14); var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),MinusDM14(0),TRange1(0),preMinusDM14(0); Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),preADX(0); Var : CummDMI(0),b(0),DayDP(0),DayDM(0),DayADX(0),preADXv(0); Array : HH[100](0),LL[100](0),CC[100](0),TR[100](0),DMIv[100](0); if bdate != bdate[1] Then { Dcnt = Dcnt+1; for cnt = 99 downto 1 { HH[cnt] = HH[cnt-1]; LL[cnt] = LL[cnt-1]; CC[cnt] = CC[cnt-1]; TR[cnt] = TR[cnt-1]; DMIv[cnt] = DMIv[cnt-1]; } HH[0] = H; LL[0] = L; CC[0] = C; preTRange = TRange[1]; prePlusDM14 = PlusDM14[1]; preMinusDM14 = MinusDM14[1]; preADXv = DayADX[1]; } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if CC[1] > 0 Then{ If CC[1] > HH[0] then TH = CC[1]; else TH = HH[0]; If CC[1] < LL[0] then TL = CC[1]; else TL = LL[0]; TR[0] = TH-TL; } If Dcnt == Length+1 Then { MyRange = Length; DayDP = 0; PlusDM14 = 0; TRange = 0; DayDM = 0; MinusDM14 = 0; TRange1 = 0; For Counter = 0 To MyRange - 1 { If HH[Counter] - HH[Counter+1] < 0 Then PlusDM = 0 ; Else PlusDM = HH[Counter] - HH[Counter+1]; If LL[Counter+1] - LL[Counter] < 0 Then MinusDM = 0; Else MinusDM = LL[Counter+1] - LL[Counter]; var1 = PlusDM; var2 = MinusDM; If var1 >= var2 Then MinusDM = 0; If var2 >= var1 Then PlusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DayDP = 100 * PlusDM14 / TRange; Else DayDP = 0 ; If TRange <> 0 Then DayDM = 100 * MinusDM14 / TRange; Else DayDM = 0; If DayDP + DayDM == 0 Then DMIv[0] = 0; Else DMIv[0] = 100 * AbsValue(DayDP - DayDM) / (DayDP + DayDM); } Else If Dcnt > Length+1 Then { If HH[0] - HH[1] < 0 Then PlusDM = 0; Else PlusDM = HH[0] - HH[1]; If LL[1] - LL[0] < 0 Then MinusDM = 0; Else MinusDM = LL[1] - LL[0]; var1 = PlusDM; var2 = MinusDM; If var1 >= var2 Then MinusDM = 0; If var2 >= var1 Then PlusDM = 0; If MyRange > 0 Then { TRange = preTRange - (preTRange / MyRange) + TR[0]; PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM; MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM; } If TRange <> 0 Then DayDP = 100 * PlusDM14 / TRange; Else DayDP = 0 ; If TRange <> 0 Then DayDM = 100 * MinusDM14 / TRange; Else DayDM = 0; If DayDP + DayDM == 0 Then DMIv[0] = 0; Else DMIv[0] = 100 * AbsValue(DayDP - DayDM) / (DayDP + DayDM); } If DMIV[Length] == 0 Then { CummDMI = 0; b = 0; for Counter = 0 To Length-1 { if DMiV[counter] > 0 Then { CummDMI = CummDMI + DMIV[Counter]; b = b+1; } } DayADX = CummDMI / B; } Else DayADX = (preADXv * (Length - 1) + DMIv[0]) / Length; if DayDP > DayDM and dayADX > 20 Then Buy(); if DayDP < DayDM Then Sell(); 즐거운 하루되세요 > 로카2 님이 쓴 글입니다. > 제목 : 일봉 데이터를 분봉차트에서 매매 > 안녕하세요 일봉 diplus > diminus 이고 ADX > 20 일때 분봉 차트에서 매수 일봉 diplus < diminus 일때 분봉 차트에서 매도 조건식이 작동할수 있는 함수 부탁드립니다!