커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

청산 후 최고점/최저점 진입

거래원칙 1.데이트레이딩 2.당일 max 2회거래(buy,sell 각 l번) 3.sell 청산 후 buy 진입. 두번째 buy 진입은 당일 최고점을 n회 갱신하는 최고점에서 진입 4.buy 청산 후 sell 진입. 두번째 sell 진입은 당일 최저점을 n회 갱신하는 최저점에서 진입 아래 수식을 만들어 시뮬레이션을 해보니 오류가 발생합니다. 첨부파일1은 첫번째 s1 진입후 청산된 다음 b2가 진입하는 내역입니다. 다른 날들은 고가들을 갱신 후 최고점에 진입하는데 2018년12월5일에는 최고점에서 내려온 지점에서 b2가 진입하는데 이런 진입은 원하지 않습니다. 첨부파일2는 첫번째 b1 진입후 청산된 다음 s2가 진입하는 내역입니다. 다른 날들은 저가들을 갱신 후 최저점에 진입하는데 2018년4월10일에는 최저점에서 올라온 지점에서 s2가 진입하는데 이런 진입은 원하지 않습니다. 최고점이나 최저점으로 진입하는 수식이 되게 살펴주세요. ***************************************************************************** input : up진입수(1), dn진입수(1); input : 고가갱신수(24), 저가갱신수(18); input : up강제손절(0.62); input : dn강제손절(0.66); var : S1(0),S2(0),ST(0),E1(0),E2(0),ET(0),second(0); var : T1(0),entry(0); if bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; S1 = TimeToMinutes(stime)*60; S2 = FracPortion(stime/100)*100; ST = S1+S2; E1 = TimeToMinutes(time)*60; E2 = FracPortion(time/100)*100; ET = E1+E2; if sdate == date Then Second = ET-ST; Else Second = 86400-ST+ET; if entry < up진입수 and second < second[1] and C > O Then buy("b1"); if entry < dn진입수 and second < second[1] and C < O Then sell("s1"); if MarketPosition == 0 and #현재무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == -1 and #직전거래가 매도거래이고 countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수 and #청산이후 당일고가 갱신이 n회이상 있었으면 second < second[1] and C > O Then buy("b2"); if MarketPosition == 0 and #현재무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == 1 and #직전거래가 매수거래이고 countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수 and #청산이후 당일저가 갱신이 n회이상 있었으면 second < second[1] and C < O Then sell("s2"); if MarketPosition == 1 Then { SetStopLoss(up강제손절,pointstop); } if MarketPosition == -1 Then { SetStopLoss(dn강제손절,pointstop); }
프로필 이미지
좌오비우오비
2019-11-11
219
글번호 133496
시스템
답변완료

당일 VI 발생종목 검색

안녕하세요. 당일 VI발생종목 종목검색 수식작성 부탁드립니다. 만약 가능하다면, 정적/동적 구분도 가능한지요? 감사합니다.
프로필 이미지
순두부남
2019-11-07
167
글번호 133491
종목검색
답변완료

문의드립니다

수고많으십니다^^ 검색식 문의입니다 ===================================[지표] input : 기간(80); var : aa(0); aa = ema(c,기간); if aa > aa[1] Then { var1 = aa; plot1(var1,"상승",Red); } if aa < aa[1] Then { var2 = aa; plot2(var2,"하락",GRAY); } ================================== 위지표로 종목검색을 하고싶습니다 (n)봉 이상 이평선이 하락 추세 유지후 상승반전[이평선]하는 봉을 검색하고자합니다 그림파일첨부합니다 고맙습니다
프로필 이미지
비오
2019-11-07
197
글번호 133490
지표
답변완료

이평선이 특정 라인을 뚫고 지나가는 종목 검색

안녕하세요. 이전에 64492글에 이평선이 특정 선을 뚫고 지나가면 그 종목을검색해주는 코딩을 부탁하였는데요, 다름이아니라 (var1 > 0 and n일전종가_20 < var1)) 이 부분들의 해석이 안되어서그런데 주석으로 아래의 코딩 설명좀 부탁해도 될까요? Input : period1(20); var : maLine(0), n일전종가_20(0), n일전종가_10(0),n일전종가10(0), n일전종가20(0), n일전종가30(0); maLine = ma(c,period1); n일전종가_20 = c[1] - c[1]/20; # 어제 종가의 -20% n일전종가_10 = c[1] - c[1]/10; # 어제 종가의 -10% n일전종가10 = c[1] + c[1]/10; # 어제 종가의 +10% n일전종가20 = c[1] + c[1]/20; # 어제 종가의 +20% n일전종가30 = c[1] + c[1]/30; # 어제 종가의 +30% var1 = 0; if n일전종가_20 > maLine and (var1 == 0 or (var1 > 0 and n일전종가_20 < var1)) Then { var1 = n일전종가_20; } if n일전종가_10 > maLine and (var1 == 0 or (var1 > 0 and n일전종가_10 < var1)) Then { var1 = n일전종가_10; } if n일전종가10 > maLine and (var1 == 0 or (var1 > 0 and n일전종가10 < var1)) Then { var1 = n일전종가10; } if n일전종가20 > maLine and (var1 == 0 or (var1 > 0 and n일전종가20 < var1)) Then { var1 = n일전종가20; } if n일전종가30 > maLine and (var1 == 0 or (var1 > 0 and n일전종가30 < var1)) Then { var1 = n일전종가30; } if crossup(C,var1) Then find(1);
프로필 이미지
퀀트드래곤
2019-11-07
150
글번호 133485
종목검색
답변완료

수식 요청 드립니다.

* 전일 데이타 확인 해보니 데이타 차이가 있어 안되었습니다. * 요청 사항1 : 아래 수식에서 매매로직 요청 좀 드립니다. 무포지션 상태에서 매수 : VAR1 이 VAR2 를 3번째 상향돌파 하면 매수 매도 : VAR1 이 VAR2 를 3번째 하향돌파 하면 매도 입니다. →수시로 반복되도 &#44346;찮습니다. var : TL1(0),TL2(0),tx1(0),tx2(0); VAR1 = MA(C,2) ; VAR2 = MA(C,5) ; Plot1(VAR1,"1",RED,DEF,1) ; Plot2(VAR2,"1",BLUE,DEF,1) ; * 요청 사항2 : 아래 수식 에서 최대수익, 최대손실 표현좀 부탁 드립니다. var : TL(0),TX(0); if MarketPosition != 0 Then { if MarketPosition != MarketPosition[1] Then { TL = TL_New(sdate[1],stime[1],EntryPrice,sdate,stime,EntryPrice); tx = Text_New(sdate,stime,EntryPrice,NumToStr(PositionProfit(0),2)); } Else { TL_SetEnd(TL,sdate,stime,EntryPrice); Text_SetString(tx,NumToStr(PositionProfit(0),2)); Text_SetLocation(tx,sdate,stime,EntryPrice); } TL_SetSize(TL,1); if PositionProfit(0) > 0 Then { TL_SetColor(TL,RED); text_SetColor(Tx,RED); } else if PositionProfit(0) < 0 Then { TL_SetColor(TL,BLUE); text_SetColor(Tx,BLUE); } else { TL_SetColor(TL,BLACK); text_SetColor(Tx,BLACK); } } * 매번 많은 도움에 고맙습니다.
프로필 이미지
요타
2019-11-07
173
글번호 133484
시스템
답변완료

도움을 부탁드리겠습니다. 그림첨부

늘 도와주셔서 감사드립니다. 자력으로 해보려고 했는데...하아..아직 먼거 같습니다.. 한번만 더 도와주세요.. 수식은 전번에 도움을 얻은 부분입니다. 타주기로 , 몸통이 긴 양봉을 찾아서, 그 중심가격을 표시하고 몸통이 더 긴 양봉이 나오기 전에는 중심가격이 계속 표시되게 하려는 의도였습니다. 1. <최대몸통길이를 가진 양봉의 중심가격>을 첨부한 그림 파일에서는 24900원 정도가 직선으로 계속 표시되게 하고 싶었습니다. 이거보다 더 긴 몸통길이를 가진 양봉이 나오기 전까지는요.. 근데 분홍색값을 보시면 계속 증감이 있고 값도 몸통의 중심가라고 하기에는 표시된 값이 너무 낮습니다.. 며칠째 고민했는데 뭐가 문제인지 도저히 못찾겠습니다. 2. 타주기를 현재 시간으로 나눈 나머지를 구할때요, // 요부분 의미를 잘 모르겠습니다. 날짜가 바뀌는지점에서는 sTime 값이 0이 되는 것인가요 1440이 되는 것인가요 else 의미도요...대충 작동하는 방향은 느낌이 오는데 ..제대로 알고 싶습니다.. 설명좀 부탁드려도 될까요.. input : ntime(15),P(5); var : S1(0),D1(0),TM(0),TF(0),j(0),HR(0),HP(0),HM(0); Array : MinOpen[100](0),MinHigh[100](0),MinLow[100](0),MinClose[100](0), 몸통길이[100](0),몸통중심가격[100](0) ; var1 = ma(C,P); if bDate!= bDate[1] Then { S1 = TimeToMinutes(sTime); D1 = sDate; } if D1 > 0 then{ if sDate == D1 Then TM = TimeToMinutes(sTime)-S1; // 요부분 의미를 잘 모르겠습니다. Else // 요부분 의미를 잘 모르겠습니다. TM = TimeToMinutes(sTime)+1440-S1; // 요부분 의미를 잘 모르겠습니다. // TF = TimeToMinutes(stime)%ntime; // 요기는 TM%ntime이 되야 하는거죠?? TF = TM%ntime; // 이렇게 바꿔봤습니다.. if bDate != bDate[1] or (bDate == bdate[1] and TF < TF[1])Then { For j = 98 DownTo 0 { MinOpen[j+1] = MinOpen[j]; MinHigh[j+1] = MinHigh[j]; MinLow[j+1] = MinLow[j]; MinClose[j+1] = MinClose[j]; 몸통길이[j+1] = 몸통길이[j]; 몸통중심가격[j+1] = 몸통중심가격[j]; } MinOpen[0] = O; MinHigh[0] = H; MinLow[0] = L; } If MinHigh[0] > 0 and MinHigh[0] < H Then MinHigh[0] = H ; If MinLow[0] > 0 and MinLow[0] < L Then MinLow[0] = L ; MinClose[0] = C ; 몸통길이[0] = MinClose[0]-MinOpen[0] ; 몸통중심가격[0] = (MinClose[0]+MinOpen[0])/2; HR = 몸통길이[0]; HP = 몸통중심가격[0]; HM = var1; For j = 1 to 60 { if 몸통길이[j] > HR Then { HR = 몸통길이[j]; HP = 몸통중심가격[j]; HM = var1[j]; } } plot1(HR,"최대몸통길이"); plot2(HP,"최대몸통중심가"); plot3(HM,"최대몸통이평"); }
프로필 이미지
지스카드
2019-11-06
247
글번호 133483
지표
답변완료

부탁드립니다.

매번 감사드립니다. 수식 수정좀 부탁드립니다. 아래식은 지정한 날짜,시간 이후 tt==0 가 되면 매매가 정지되는 수식입니다. 예) 진입(B1■,B1) --> 청산(심볼0) 이면 매매 정지 이 수식을 진입이 B1■, B2■, S1■, S2■인 경우 BB(-40)보다 크면 (청산심볼-40) 이면 매매가 정지하는 식으로 수정하고 싶습니다. BB(-100): 진입이 B1■, B2■, S1■, S2■인 경우 BB(-100)보다 크면(청산심볼-100) 이면 매매 정지 예) BB(-40) 진입(B1■) --> 청산(심볼-40) 이면 매매 정지 진입(B1) --> 청산(심볼-40) 이면 매매 지속 BB(-100) 진입(B1■) --> 청산(심볼-100) 이면 매매 정지 진입(B1) --> 청산(심볼-100) 이면 매매 지속 input : 시작날짜(20191001), 시작시간(170000); Input: AA(-120), BB(-40); Input : 손절(10),익절(10),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tx(0),X(false),Tcond(false),tt(0); var : Tcond1(false); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); ######## 진입제한 if sdate >= 시작날짜 and stime >= 시작시간 Then Tcond1 = true; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then { Tcond = true; } if (sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then { Tcond = false; } ## 진입 if Tcond1 == true and Tcond == true and X == false then { if Tcond == true and marketposition == 0 and crossup(var1,var2) Then { if Condition1 == true and tt <= BB then buy("B1■"); Else buy("B1"); } if Tcond == true and marketposition == 0 and crossdown(var1,var2) Then { if Condition1 == true and tt <= BB then sell("S1■"); Else sell("S1"); } if Tcond == true and marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { if Condition1 == true and tt <= BB then buy("B2■"); Else buy("B2"); } if Tcond == true and marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { if Condition1 == true and tt <= BB then sell("S2■"); Else sell("S2"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if ((sdate != sdate[1] and stime >= Endtime) or (sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then { if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { tt = tt - 40; if tt >= 0 Then { tt = 0; Condition1 = false; } if tt > AA then { tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); } else { Condition1 = true; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★"); Text_SetSize(tx,20); } } if IsExitName("StopTrailing",1) == true then { tt = tt + 30; if tt >= 0 Then { tt = 0; X = true; Condition1 = false; } if Condition1 == true and tt >= BB then Condition1 = false; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)); Text_SetSize(tx,20); Text_Setstyle(tx,2,2); //Text_SetSize 폰트 사이즈 //Text_Setstyle 좌우상하 정렬 } } }
프로필 이미지
라떼처럼
2019-11-06
171
글번호 133481
시스템

파워 님에 의해서 삭제되었습니다.

프로필 이미지
파워
2019-11-06
17
글번호 133480
종목검색
답변완료

수식 문의

안녕하세요. 아래 기존의 조건식에 일부 수식을 변경하고자 문의드립니다. var1 = (highest(H,5)+lowest(L,5))/2; var2 = (highest(H,10)+lowest(L,10))/2; var3 = (highest(H,20)+lowest(L,20))/2; if C >= 5000 and C <= 30000 And countif(C > O and H >= O*1.05,15) >= 1 and ma(v,5)[1] >= 100000 and (var1 == var2 or var2 == var3 or var1 == var3) Then find(1); 변경 사항 1. ((var1 == var2) AND (주가가 var1 보다 크고 주가가 var1 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 2. ((var2 == var3) AND (주가가 var2 보다 크고 주가가 var2 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 3. ((var3 == var1) AND (주가가 var3 보다 크고 주가가 var3 값에 5% 이내 접근) AND (5% 이내 접근이 당일은 1번째 혹은 2번째 접근 and 일봉상 7봉이내에서 1번째, 2번 째, 3번째 접근인 경우만)) 위 기존의 수식에서 마지막 부분 (var1 == var2 or var2 == var3 or var1 == var3) 대신 변경 사항 (1 OR 2 OR 3)으로 바꾸고 싶습니다. 첨언 : 1. 당일 5%이내 접근이 여러 번 있을 수 있으므로 3번째 이후의 접근은 제외. 2. "일봉상 7봉이내에서 1번째, 2번째, 3번째 접근인 경우"란 일봉상 7봉 이내의 누적 접근이 3회이하인 경우만 검색하고 4회 이상은 제외. 3. 수식화가 불가능한 것이 있으면 제외하고 가능한 것만 해주세요 ^^ 부탁드립니다. 감사합니다.
프로필 이미지
목우도
2019-11-07
146
글번호 133479
검색
답변완료

문의드립니다

안녕하세요. 몇개 문의드려요 100틱 200틱 기준. 1) 100틱 차트에서 a > b 일때 매수인데, 이 조건이 만족한 봉에서 만약 200틱 캔들이 완성이면 바로 매수고, 200틱 캔들이 아직 진행중이면 100틱에서 다음캔들이 도지 또는 양봉이면 매수하는 수식 100틱 500틱 기준. 2) 100틱 차트에서 a > b 일때 매수인데, 이 조건이 만족한 봉에서 만약 500틱 캔들이 아직 진행중이면 500틱 봉이 완성됐을때 100틱에서 조건이 만족하면 진입하는 수식 가능할까요? 3) 지표문의. 100틱 캔들 2개를 묶어서 1개의 박스로 표현하는 지표를 본것같은데 가능하다면 부탁드릴게요. 눈에 잘보이게 부탁드려요 4) 시스템수식 추가로 하나 더 여쭤볼게요 일목에서 기준선 - 전환선, 차이가 7틱 이하는 어떻게 표현하나요? 혹시 설명 달아주시면 정말 감사하겠습니다 즐거운 하루 보내세요. 수고하세요~
프로필 이미지
국산3
2019-11-07
182
글번호 133478
시스템