커뮤니티

수식 부탁드립니다.

프로필 이미지
고민중
2023-06-10 22:39:33
1107
글번호 169657
답변완료
1. 진입조건 기술적적조건1 (TDI, DI) TDI = 최근 20일추세크기 - 이전 20일 동안 횡보변동성크기 추세크기 = 절대값(최근20일 동안의 20일 모멘텀들의 합) 횡보변동성크기 = (최근 40일동안의 20일 모멘텀 절대값의 합) -(최근20일동안의 20 일 모멘텀 절대값의 합) DI = 최근 20일 동안의 20일 모멘텀 값의 합 buy power = 현재봉 포함 과거 n일 간의 최고점 - 15일 전봉 포함 과거 n일간의 최저점 (n기간 선택가능하게) sell power = n일전 봉 포함 과거 15일간의 최고점 - 현재봉 포함 과거 15일 간의 최저점 TTF(n기간) = (buy power-sell power)/(0.5 * (buy power + sell power)) * 100 TTF > 100 이면서 DI가 TDI를 상향 돌파시 매수 TTF <-100 이면서 DI가 TDI를 하향 돌파시 매도 거래수량(총 예수금의 1%) = 예수금/ (100 * (20봉간 최고값-최저값)) => 예스랭귀지에서 예수금을 읽어와서 거래가 가능한지 아니면 예수금을 직접 입력해줘야하는지 궁금합니다. 기술적조건2 (adx,force index, chaikin oscillator) 종가가 N일간의 최고점 돌파(N값 선택가능하게) and 돌파시점의 ADX값이 N일전의 ADX값보다 클 것 and 돌파시점의 force index값이 N일전의 force index값보다 클 것 and 돌파시점의 chaikin oscillator 값이 N일전의 chaikin oscillator값보다 클 것 시간조건 09:00이후 진입, 15:20에 보유한 모든 수량 청산 예수금조건 거래수량(총 예수금의 1%) = 예수금/ (100 * (20봉간 최고값-최저값)) 2. 필터조건 ADX 조건1) ADX > 25 일 것 ADX 조건2) (ADX 20봉평균 < 10) and (최근 3일 ADX >10 일 것) and (ADX - 5일전 ADX >0 일 것) ADX 조건 1 혹은 ADX조건2를 만족할 것 3. 청산조건 청산조건1 (최고-최저 range) 진입이후 봉이 갱신될 때마다 청산지점(진입후 최고가- 3* abs[20봉간 최고값-최저값])의 값을 비교하여, 기존 청산지점 > 새로계산된 청산지점 -> 기존 청산지점 유지 기존 청산지점 < 새로계산된 청산지점 -> 새로 계산된 청산지점을 청산지점으로 갱신 청산조건2 (표준편차) 진입이후 봉이 갱신될 때마다 청산지점(진입후 최고가 - 3*abs[20봉간 표준편차])의 값을 비교하여, 기존 청산지점 > 새로계산된 청산지점 -> 기존 청산지점 유지 기존 청산지점 < 새로계산된 청산지점 -> 새로 계산된 청산지점을 청산지점으로 갱신
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-06-12 10:48:31

안녕하세요 예스스탁입니다. 예수금은 직접 지정하셔야 합니다. 1 input : len1(20),len2(40),예수금(20000000); input : len(15); input : adxPeriod(14),n(20); Inputs: Period(5); var : mt(0),sum1(0),sum2(0),TDI(0),DI(0); Var : adxv(0),Fval(0),Fi(0),ChOsc(0); var : HH(0),LL(0),BuyPower(0),SellPower(0),TTF(0),vol(0); mt = Abs(C-C[len1-1]); sum1 = AccumN(mt,len1); sum2 = AccumN(mt,len2); TDI = sum1-(sum2-sum1); DI = AccumN(mt,len1); HH = highest(H,len); LL = lowest(L,len); BuyPower = HH-LL[len]; SellPower = HH[len]-LL; TTF = ((BuyPower-SellPower)/(0.5*(BuyPower+SellPower)))*100; adxv = adx(adxPeriod); Fval = ((Close - Close[1]) * Volume) ; FI = Ema(Fval, Period); ChOsc = CO(); vol = 예수금/(100*(highest(H,20)-lowest(L,20))); if C > highest(H,n)[1] and adxv > adxv[n] and FI > FI[n] and ChOsc > ChOsc[n] and TTF > 100 and CrossUp(DI,TDI) Then buy("b",OnClose,Def,vol); if TTF < -100 and CrossDown(DI,TDI) Then ExitLong("bx"); SetStopEndofday(152000); 2 input : adxPeriod(14),sig(20); var : adxv(0),adxs(0); adxv = adx(adxPeriod); adxs = ma(adxv,sig); if adxv > 25 and adxs < 10 and CountIf(adxv>10,3) == 3 and adxv-adxv[5] > 0 Then 3 if MarketPosition == 1 Then { ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)-(highest(H,20)-lowest(L,20))); ExitLong("bx2",AtStop,highest(H,BarsSinceEntry)-std(C,20)); } 즐거운 하루되세요 > 고민중 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 1. 진입조건 기술적적조건1 (TDI, DI) TDI = 최근 20일추세크기 - 이전 20일 동안 횡보변동성크기 추세크기 = 절대값(최근20일 동안의 20일 모멘텀들의 합) 횡보변동성크기 = (최근 40일동안의 20일 모멘텀 절대값의 합) -(최근20일동안의 20 일 모멘텀 절대값의 합) DI = 최근 20일 동안의 20일 모멘텀 값의 합 buy power = 현재봉 포함 과거 n일 간의 최고점 - 15일 전봉 포함 과거 n일간의 최저점 (n기간 선택가능하게) sell power = n일전 봉 포함 과거 15일간의 최고점 - 현재봉 포함 과거 15일 간의 최저점 TTF(n기간) = (buy power-sell power)/(0.5 * (buy power + sell power)) * 100 TTF > 100 이면서 DI가 TDI를 상향 돌파시 매수 TTF <-100 이면서 DI가 TDI를 하향 돌파시 매도 거래수량(총 예수금의 1%) = 예수금/ (100 * (20봉간 최고값-최저값)) => 예스랭귀지에서 예수금을 읽어와서 거래가 가능한지 아니면 예수금을 직접 입력해줘야하는지 궁금합니다. 기술적조건2 (adx,force index, chaikin oscillator) 종가가 N일간의 최고점 돌파(N값 선택가능하게) and 돌파시점의 ADX값이 N일전의 ADX값보다 클 것 and 돌파시점의 force index값이 N일전의 force index값보다 클 것 and 돌파시점의 chaikin oscillator 값이 N일전의 chaikin oscillator값보다 클 것 시간조건 09:00이후 진입, 15:20에 보유한 모든 수량 청산 예수금조건 거래수량(총 예수금의 1%) = 예수금/ (100 * (20봉간 최고값-최저값)) 2. 필터조건 ADX 조건1) ADX > 25 일 것 ADX 조건2) (ADX 20봉평균 < 10) and (최근 3일 ADX >10 일 것) and (ADX - 5일전 ADX >0 일 것) ADX 조건 1 혹은 ADX조건2를 만족할 것 3. 청산조건 청산조건1 (최고-최저 range) 진입이후 봉이 갱신될 때마다 청산지점(진입후 최고가- 3* abs[20봉간 최고값-최저값])의 값을 비교하여, 기존 청산지점 > 새로계산된 청산지점 -> 기존 청산지점 유지 기존 청산지점 < 새로계산된 청산지점 -> 새로 계산된 청산지점을 청산지점으로 갱신 청산조건2 (표준편차) 진입이후 봉이 갱신될 때마다 청산지점(진입후 최고가 - 3*abs[20봉간 표준편차])의 값을 비교하여, 기존 청산지점 > 새로계산된 청산지점 -> 기존 청산지점 유지 기존 청산지점 < 새로계산된 청산지점 -> 새로 계산된 청산지점을 청산지점으로 갱신