답변완료
문의드립니다.
답변해 주신 아래 수식에서 나스닥 10분봉 초기자본 1만달러로 시작하는 수식으로 변경 그리고 아래수식을 시스템에 적용을 하면 최초에 한번 만 매수가 일어나고 그 이후에는 매매가 안일어나는 것 같습니다.수정을 부탁드립니다.//////////////////////////////// 최초 자본 100만원 10분봉 매매에서 무포지션시 무조건 70% 매수하고요. 30% 현금이고요. 매수 투자분: 현금 비율이 70:30 되도록 투자비율 리밸런싱을 합니다. 투자매수에서 10% 수익이 나면 77:30 비율이 되면 비율이 70: 30 되도록 투지매수 이익분을 처분하고 반대로 투자매수에서 10% 손실이 나면 63:30 비율이 되면 비율이 70: 30 되도록 현금을 투자합니다. 수식을 부탁드립니다. 시스템답변 1예스스탁 예스스탁 답변2025-11-04 09:18:57 안녕하세요 예스스탁입니다. input : 자본(1000000); var : MM(0),vol(0),Cash(0),diff(0); MM = 자본+NetProfit; if MarketPosition == 0 and Index > 5 Then { vol = Floor((MM*0.7)/C); Buy("B",OnClose,Def,vol); Cash = MM-(Vol*C); } if MarketPosition == 1 Then { var1 = C*CurrentContracts; var2 = (var1+Cash)*0.7; if var1 >= var2 Then { diff = Floor(abs(var1-var2)/C); if diff > 0 Then { ExitLong("bx",OnClose,Def,"",diff,2); Cash = Cash + (diff*C); } } Else { diff = Floor(abs(var1-var2)/C); if diff > 0 Then { Buy("bb",OnClose,Def,diff); Cash = Cash - (diff*C); } } } 즐거운 하루되세요
답변완료
종목 검색식 부탁드립니다.
1. 아래의 예스트레이더 수식에, "0봉전 ~10봉전까지의 모든종목" 을 추가하여 수정 부탁드려요. -아래--- Input: ConvPeriod1(8), BasePeriod1(19), SpanPeriod1(33), ConvPeriod2(9), BasePeriod2(26), SpanPeriod2(52); Vars: Conv1(0), Base1(0), Span1_1(0), Span1_2(0), Cloud1_Upper(0), Cloud1_Lower(0), Conv2(0), Base2(0), Span2_1(0), Span2_2(0), Cloud2_Upper(0), Cloud2_Lower(0), BullishCross(false), BearishCross(false); // 반일목 계산 Conv1 = (Highest(H, ConvPeriod1) + Lowest(L, ConvPeriod1)) / 2; Base1 = (Highest(H, BasePeriod1) + Lowest(L, BasePeriod1)) / 2; Span1_1 = (Conv1 + Base1) / 2; Span1_2 = (Highest(H, SpanPeriod1) + Lowest(L, SpanPeriod1)) / 2; if Span1_1 < Span1_2 then { Cloud1_Upper = Span1_1; Cloud1_Lower = Span1_2; } else { Cloud1_Upper = Span1_2; Cloud1_Lower = Span1_1; } // 정일목 계산 Conv2 = (Highest(H, ConvPeriod2) + Lowest(L, ConvPeriod2)) / 2; Base2 = (Highest(H, BasePeriod2) + Lowest(L, BasePeriod2)) / 2; Span2_1 = (Conv2 + Base2) / 2; Span2_2 = (Highest(H, SpanPeriod2) + Lowest(L, SpanPeriod2)) / 2; if Span2_1 < Span2_2 then { Cloud2_Upper = Span2_1; Cloud2_Lower = Span2_2; } else { Cloud2_Upper = Span2_2; Cloud2_Lower = Span2_1; } // 돌파 조건 BullishCross = CrossUp(Cloud1_Upper, Cloud2_Upper); // 상향 돌파 BearishCross = CrossDown(Cloud1_Lower, Cloud2_Lower); // 하향 돌파 // 검색 조건 if BullishCross then { Find(1); // 상향 돌파 종목 검색 } /* 하향 돌파 종목도 검색하려면 아래 주석 해제 if BearishCross then { Find(1); }*/
답변완료
아래의 트레이디이뷰 수식을 변환부탁드립니다.
//@version=4study("ATR Breakouts", overlay=true)per = input(50, title="Length")aper = input(20, title="Atr Length")LongEntry = ema(close, per) + 2 * atr(aper)LongStopLoss = ema(close, per) + atr(aper)ShortEntry = ema(close, per) - 2 * atr(aper)ShortStopLoss = ema(close, per) - atr(aper)plot(LongEntry, "Long Entry Threshold", color=color.green, style=plot.style_line)plot(LongStopLoss, "Long Stop Loss", color=color.blue, style=plot.style_line)plot(ShortEntry, "Short Entry Threshold", color=color.red, style=plot.style_line)plot(ShortStopLoss, "Short Stop Loss", color=color.black, style=plot.style_line)
답변완료
종목검색 오류 문의 드립니다.
/* 조건식 변환본 (예스트레이더 종목검색용) 원식: A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q*/var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);var : Nn(false), Oo(false), Pp(false), Qq(false);var : d(false);/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */A = (H - C[1]) / C[1] * 100 >= 15;/* B: 0봉전 시가 < 0봉전 종가 */B = O < C;/* C: [일]거래대금(일:백만) 20000이상 999999999이하 → 원단위로 변환: 20000000000 ~ 999999999000000*/Cc = m >= 20000000000 and m <= 999999999000000;/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Ee = (C - C[1]) / C[1] * 100 <= 29.65;/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* G: 2봉전 시가 < 2봉전 종가 */Gg = O[2] < C[2];/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */Hh = (H[2] - C[3]) / C[3] * 100 >= 15;/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;/* J: 3봉전 시가 < 3봉전 종가 */Jj = O[3] < C[3];/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */Kk = (H[3] - C[4]) / C[4] * 100 >= 15;/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Nn = (C - C[1]) / C[1] * 100 <= 29.65;/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;/* 최종식 */d = A and B and Cc and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) ) and Nn and Oo and Pp and Qq;/* 신호 발생 시 종목 출력 */if d then Find(1);위 조건식으로 검색을 하면 9월 24일에 '아이윈플러스, 뉴로핏, 모니터랩' 이렇게 3 종목이 검색이 됩니다.그런데 위 조건식을 30일치를 한번에 검색할 수 있게 아래와 같이 변형을 하면 9월 24일에 '뉴로핏' 한종목만 검색이 됩니다.이와 같은 현상이 9월 24일 뿐만이 아니라 랜덤으로 다른 날짜에도 발생을 합니다.왜 이런 현상이 발생할까요?아래는 위 조건식을 30일치 한번에 검색하도록 변형한 것입니다./* 조건식 변환본 (최근 30일치 자동검색 버전) 원식: A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q*/var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);var : Nn(false), Oo(false), Pp(false), Qq(false);var : d(false);var : VALUE1(0);/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */A = (H - C[1]) / C[1] * 100 >= 15;/* B: 0봉전 시가 < 0봉전 종가 */B = O < C;/* C: [일]거래대금(일:백만) 20000이상 999999999이하 → 원단위로 변환: 20000000000 ~ 999999999000000*/Cc = m >= 20000000000 and m <= 999999999000000;/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Ee = (C - C[1]) / C[1] * 100 <= 29.65;/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* G: 2봉전 시가 < 2봉전 종가 */Gg = O[2] < C[2];/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */Hh = (H[2] - C[3]) / C[3] * 100 >= 15;/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;/* J: 3봉전 시가 < 3봉전 종가 */Jj = O[3] < C[3];/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */Kk = (H[3] - C[4]) / C[4] * 100 >= 15;/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Nn = (C - C[1]) / C[1] * 100 <= 29.65;/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;/* 최종식 */d = A and B and Cc and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) ) and Nn and Oo and Pp and Qq;/* 조건 충족일 기록 */if d then VALUE1 = sDate;/* 최근 30일 내 조건이 한 번이라도 발생한 종목만 출력 */if CountIf(d == true, 30) >= 1 then Find(VALUE1);~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~참고로, AI 를 통해서 문제를 찾아보려고 아래와 같이 변형도 해 보았습니다만, 같은 증상이 발생하였습니다./* 조건식 변환본 (최근 30일치 한 번에 검색 – AccumN 사용) 원식: A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q*/var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);var : Nn(false), Oo(false), Pp(false), Qq(false);var : d(false);var : cnt30(0);/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */A = (H - C[1]) / C[1] * 100 >= 15;/* B: 0봉전 시가 < 0봉전 종가 */B = O < C;/* C: [일]거래대금(일:백만) 20000이상 999999999이하 → 원단위로 변환: 20000000000 ~ 999999999000000*/Cc = m >= 20000000000 and m <= 999999999000000;/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Ee = (C - C[1]) / C[1] * 100 <= 29.65;/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* G: 2봉전 시가 < 2봉전 종가 */Gg = O[2] < C[2];/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */Hh = (H[2] - C[3]) / C[3] * 100 >= 15;/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;/* J: 3봉전 시가 < 3봉전 종가 */Jj = O[3] < C[3];/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */Kk = (H[3] - C[4]) / C[4] * 100 >= 15;/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Nn = (C - C[1]) / C[1] * 100 <= 29.65;/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;/* 오늘(0봉) 기준 조건식 d */d = A and B and Cc and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) ) and Nn and Oo and Pp and Qq;/* d가 true인 날이면 오늘 날짜를 VALUE1에 저장 (종목검색에선 어차피 '검색 기준일'로 보이므로, 날짜는 참고용)*/if d then VALUE1 = sDate;/* 최근 30봉(오늘 포함이라고 가정) 동안 d가 true인 횟수 */cnt30 = AccumN( Iff(d, 1, 0), 30 );/* 중요: 오늘이 첫 신호인 종목도 포함시키기 위해 d를 함께 OR 해준다 */if d or cnt30 >= 1 then Find(VALUE1);~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~결론적으로 문의드리고 싶은 것은, 하루하루 검색하는 것에는 검색되는 종목 ( 예를 들면 9월 24일 아이윈플러스, 뉴로핏, 모니터랩 3종목) 인데, 이것들은 30일치를 한번에 검색할 수 있게 변형한 것에는 다르게 종목이 검색되는 현상( 뉴로핏 만 검색됨) 을 수정하고 싶습니다.가장 상단의 조건식을 누락된 종목없이 검색된 날짜가 나오게 30일치 한번에 검색할 수 있게 하려면 어떻게 해야 할까요?