커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

시스템

***야~~~~~~호**** >표시가 나왔어요 신기해요!!!! 쌤은 천재예요!!!!!!! 헌데 기존 만들었던 바탕색이랑 기타 범위표시의 색이 다바뀌네요 이럴땐 어케해야하죠??? >sell표시는 나왔다가 사라졌어요 (다시 복귀 할때 보고 싶은데요) sell을 구현하려면 지표에서는 불가 하다해서 시스템에서 적용해 보았는데 지표에서 sell의 표현아니고 화살표표시정도는 안되는 건간요 지표로 하면 시스템처럼 나왔다가 사라지지않고 표시가 남을 것 같기도 하구요 >솔직히 시스템에 들어가서 보니 좀 감깜하네요 *********************************** 1>지표수시으로 sell/buy수식 될까요 ************************************
프로필 이미지
에리카
2020-06-09
2232
글번호 139681
시스템
답변완료

부탁 드립니다.

변환 문의 드립니다. m=ma(c,p20,단순); a=m+avgif(c-m,1,0.0)+2*stdevif(c-m,1,0.0); 여기서 avgif , stdevif는 무슨의미 인지요? 미리 감사드립니다.
프로필 이미지
뮬리
2020-06-09
2180
글번호 139680
지표
답변완료

수식 문의 드립니다.

관리자님, 회신 감사드립니다. 허나 최고점 대비 5%에 곤바로 팔리지 않고 봉이 완성되고 난뒤인 한참 아래서 팔립니다. 재 검토 후 회신 부탁 드립니다. 감사 드립니다., > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 문의 드립니다. > 안녕하세요 예스스탁입니다. input : P(9); var1 = cci(P); if var1 >= 100 Then sell("s",AtStop,highest(H,2)*0.95); 즐거운 하루되세요 > 기관장 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 매도 : cci(9,10) 이 100 이상이고, 이전 2봉중 최고점 대비 5% 하락시 봉끝나기 전이라도 즉시 매도
프로필 이미지
기관장
2020-06-09
1965
글번호 139677
시스템
답변완료

알려주신 수식대로 했는데 잘 안됩니다 ^^;; 번거롭게 해드려서 대단히 죄소합니다

1분봉으로 바꿀경우 매수신호는 나오는데요, 2000년도부터 현재까지 데이터를 보려고 하니 1분봉으로 바꿀경우 데이터가 너무 커서 예스트레이더가 자꾸 멈춥니다 ^^;; 그래서 5분봉 상태에서 수식을 넣고 백테스팅을 해보고 싶은데 잘 안되네요 ^^;; 알려주신 수식 그대로 적용을 해봤는데요, 가장 최근 6월 3일 매수가 안잡힙니다 필요하시다면 ,,,메일을 알려주시면 제 수식을 전부 드리도록 하겠습니다/! atr = DAYHIGH(1) - DAYLOW(1); LTR = MAX(1,NOISE * ATR); STR = MAX(1,(1-NOISE) * ATR); VL = cap / (dayclose(1) * MUL * rt); LUNIT = INT((CAP * RISK) / (LTR * MUL)); SUNIT = INT((CAP * RISK) / (STR * MUL)); IF LUNIT >= VL Then LUNIT1 = VL; ELSE LUNIT1 = LUNIT; IF LUNIT * 3 <= VL THEN LUNIT2 = LUNIT1; ELSE LUNIT2 = (VL - LUNIT)/2; IF SUNIT >= VL THEN SUNIT1 = VL; ELSE SUNIT1 = SUNIT; IF SUNIT * 3 <= VL THEN SUNIT2 = SUNIT1 ; ELSE SUNIT2 = (VL - SUNIT)/2; # ENTRY L1 = DAYOPEN + LTR ; L2 = L1 + (LTR * 0.5); L3 = L1 + LTR; S1 = DAYOPEN - STR; S2 = S1 - (STR * 0.5); S3 = S1 - STR; NL1 = LatestExitPrice(1)+LTR; NL2 = NL1 + LTR * 0.5; NL3 = NL1 + LTR; NS1 = LatestExitPrice(1)-STR; NS2 = NS1 - STR * 0.5; NS3 = NS1 - Str; IF MarketPosition == 0 AND NextBarSdate != sdate Then { BUY("L11",ATSTOP,NextBarOpen+LTR,LUNIT1); SELL("S11",ATSTOP,NExtBarOpen-STR,SUNIT1); } IF MarketPosition == 0 AND BDATE != EXITDATE(1) Then { IF H <= L1 AND NEXTBARSDATE == SDATE Then BUY("L1",ATSTOP,L1,LUNIT1); IF L >= S1 AND NextBarSdate == SDATE THEN SELL("S1",ATSTOP,S1,SUNIT1); } # 매수 피라미딩 IF MarketPosition == 1 AND STIME <153000 and (IsEntryName("L1")==True or IsEntryName("L11") == True) THEN { if highest(h,BarsSinceEntry) <= L2 Then buy("L2",ATSTOP,L2,LUNIT2); if highest(h,BarsSinceEntry) <= L1 + LTR Then buy("L3",ATSTOP, L3,LUNIT2); } # 매수청산 IF MarketPosition == 1 then { if NextBarSdate == SDATE Then ExitLong("LS",AtStop,LatestEntryPrice - LTR); IF NextBarSdate != SDATE Then ExitLong("EL",ATMARKET); } # 매도 피라미딩 IF MarketPosition == -1 AND STIME < 153000 AND (IsEntryName("S1") == True or IsEntryName("S11") == True) THEN { IF Lowest(L,BarsSinceEntry) >= S2 Then SELL("S2",AtStop,S2,SUNIT2); IF Lowest(L,BarsSinceEntry) >= S1 - STR Then SELL("S3",AtStop,S3,SUNIT2); } # 매도청산 IF MarketPosition == -1 then { IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice + STR); SetStopEndofday(); } ELSE SetStopEndofday(0); #해제 # 재진입 IF MarketPosition == 0 AND BDATE == EXITDATE(1) Then { IF MarketPosition(1) == 1 AND H <= NL1 AND NextBarSdate == sDate AND IsExitName("LS",1) == TRUE THEN BUY("NL1",ATSTOP,NL1,LUNIT1); IF MarketPosition(1) == -1 AND L >= NS1 AND NextBarSdate == SDATE THEN SELL("NS1",ATSTOP,NS1,SUNIT1); } IF BDATE == EXITDATE(1) AND MarketPosition == 1 AND IsEntryName("NL1") == TRUE THEN { IF LatestEntryName == "NL1" AND Highest(H,BarsSinceEntry) <= NL2 THEN BUY("NL2",ATSTOP,NL2,LUNIT2); IF LatestEntryName == "NL2" AND HIGHEST(H,BarsSinceEntry) <= NL3 THEN BUY("NL3",ATSTOP,NL3,LUNIT2); } IF BDATE == ExitDate(1) AND MarketPosition == -1 AND IsEntryName("NS1") == TRUE Then { IF LatestEntryName == "NS1" AND Lowest(L,BarsSinceEntry) >= NS2 THEN SELL("NS2",ATSTOP,NS2,SUNIT2); IF LatestEntryName == "NS2" AND Lowest(L,BarsSinceEntry) >= NS3 THEN SELL("NS3",ATSTOP,NS2,SUNIT2); }
프로필 이미지
엠씨용가
2020-06-09
2137
글번호 139676
시스템
답변완료

수식 수정 좀 부탁드립니다.

var1 = sum(V); var2 = valuewhen(1, date(1)!=date, var1(1)); var3 = var1 - var2; 위에 있는... 영웅문에서 쓰던 수식을 예스랭귀지에 맞게 고쳐주시면 감사하겠습니다
프로필 이미지
아래위
2020-06-09
2363
글번호 139674
지표
답변완료

어제 수식 수정부탁드려요

제가 원하는 곳에서 신호가 않나와서요 --------------------------------- 그림 1에서 네모 봉을 확인후(봉의 몸통으로 이평선을 돌파한경우에만) + 아래 화살표처럼 CCI 우상향일시 동그라미 봉에서 매수가 진입이 되게 하고싶습니다 동그라미가 음봉으로 시작하면 안되고 네모봉 종가와 같거나 양봉으로 시작해야 됩니다 매도일때는 반대의경우 입니다 1번그림처럼 네모봉이 5 10 20 분봉이 돌파 해도 되지만 바로아래그림처럼 5, 10 20 60 120 모두 돌파해도 상관없습니다 5 10만 돌파하거나 5.20만 돌파 하면 안됩니다 네모 봉 몸통으로 3개이상만 순서상관없이 돌파하면 됩니다 ------------------------------------ 그림 4처럼 이전 봉들이 연속적으로 3개이상 돌파봉이 되었다면 진입 금지 입니다 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 위와같이 봉몸통으로 돌파한봉이 최근 5개봉중 3개 이하 여야되고 5,10 20 60 120 중 순서는 상관없이 3개 봉 이하일때만 진입입니다 ---------------------------------------- 그림 2처럼 만든어주신 시스템 적용했는데 원하지 않는 곳에서 매매가 시작 됩니다 ----------------------------------- 그림 3처럼 만약 네모 봉에서 매도 신호가 발생을했으면 동그라미 봉이 양봉으로 끝났을때 청산 원하는데 그렇게 안되는거 같아서 수정부탁드려요 --------------------------- 1번시스템은 위와 같이 수정 부탁드리오 2번시스템은 위내용과 동일하고 5 10 20 60 120분봉 2개이상 몸통돌파봉을 확인하고 경우 매수일경우 매도일경우 청산도 위와 같이 해주시면됩니다 혹시 가능하다면 초보라서 시스템에 자세한 주석 부탁드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 부탁드려요 > 안녕하세요 예스스탁입니다. 1 input : StartTime(91000),EndTime(130000); input : P1(5),P2(10),P3(20),CCIP(9); input : 진폭봉수(5),진폭틱수(50),N(5),돌파봉수(3); input : 익절틱수(100),손절틱수(100); var : Tcond(false),mav1(0),mav2(0),mav3(0),CCIv(0); 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; mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); CCIv = CCI(CCIP); var1 = 0; if max(C,O) > mav1 and mav1 > min(C,O) Then var1 = var1+1; if max(C,O) > mav2 and mav2 > min(C,O) Then var1 = var1+1; if max(C,O) > mav3 and mav3 > min(C,O) Then var1 = var1+1; if Tcond == true then { if MarketPosition <= 0 and C > max(mav1,mav2,mav3) and min(mav1,mav2,mav3) > O and CCIv > CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then buy("b",AtStop,NextBarSdate+PriceScale*1); if MarketPosition >= 0 and C < max(mav1,mav2,mav3) and min(mav1,mav2,mav3) < O and CCIv < CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then sell("s",AtStop,NextBarSdate-PriceScale*1); if MarketPosition == 1 then { if C < O Then ExitLong("bx1"); } if MarketPosition == -1 then { if C > O Then ExitShort("sx1"); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStoploss(PriceScale*손절틱수,PointStop); if EndTime > Starttime Then SetStopEndofday(EndTime); if EndTime < Starttime Then { if sdate != sdate[1] Then SetStopEndofday(EndTime); if bdate != bdate[1] Then SetStopEndofday(0); } 2 input : StartTime(91000),EndTime(130000); input : P1(5),P2(10),P3(20),P4(60),P5(120),CCIP(9); input : 진폭봉수(5),진폭틱수(50),N(5),돌파봉수(3); input : 익절틱수(100),손절틱수(100); var : Tcond(false),mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),CCIv(0); 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; mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); mav4 = ma(C,P4); mav5 = ma(C,P5); CCIv = CCI(CCIP); var1 = 0; if C > mav1 and mav1 > O Then var1 = var1+1; if C > mav2 and mav2 > O Then var1 = var1+1; if C > mav3 and mav3 > O Then var1 = var1+1; if C > mav4 and mav4 > O Then var1 = var1+1; if C > mav5 and mav5 > O Then var1 = var1+1; var2 = 0; if C < mav1 and mav1 < O Then var2 = var2+1; if C < mav2 and mav2 < O Then var2 = var2+1; if C < mav3 and mav3 < O Then var2 = var2+1; if C < mav4 and mav4 < O Then var2 = var2+1; if C < mav5 and mav5 < O Then var2 = var2+1; if Tcond == true then { if MarketPosition <= 0 and var1 >= 2 and CCIv > CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then buy("b",AtStop,NextBarSdate+PriceScale*1); if MarketPosition >= 0 and var2 >= 2 and CCIv < CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then sell("s",AtStop,NextBarSdate-PriceScale*1); if MarketPosition == 1 then { if C < O Then ExitLong("bx1"); } if MarketPosition == -1 then { if C > O Then ExitShort("sx1"); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStoploss(PriceScale*손절틱수,PointStop); if EndTime > Starttime Then SetStopEndofday(EndTime); if EndTime < Starttime Then { if sdate != sdate[1] Then SetStopEndofday(EndTime); if bdate != bdate[1] Then SetStopEndofday(0); } 즐거운 하루되세요 > 가날 님이 쓴 글입니다. > 제목 : 시스템식 부탁드려요 > 매매 시작시간은 오전 9시 10분 종료시간은 13시 매수조건 : 전양봉이 몸통으로 5 10 20이평을(순서는 상관없음) 돌파후 양봉시작 + CCI 우상향일시 + 이전 최근 5봉의 최저점 최고점 진폭 50틱이상 + 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 매도조건 : 전음봉이 몸통으로 5 10 20이평을(순서는 상관없음) 돌파후 양봉시작 + CCI 우하향일시 매도 + 이전 최근 5봉의 최저점 최고점 진폭 50틱이상 + 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 청산조건 : 매수후 완성봉이 음봉나올때 나 수익 100틱 손절 100틱 매도후 완성봉이 양봉이 나오면 청산 수익 100틱 손절 100틱 제가 숫자로 지정한것들은 변수로 설정 부탁드립니다 ----------------------- 추가적으로 위 시스템이랑 모두 같은 조건에서 전양봉이 몸통으로 5 10 20분봉(순서는 상관없음) 돌파후 양봉시작 을 -> 전양봉이 몸통으로 5 ,10,20,60,120 이평선중에 ( 순서는 상관없음) 2개 분봉 돌파 음봉도 반대의 경우로 매매할수있는 시스템식도 추가적으로 부탁드려요 총2개 부탁드려요 요청이 많아서 죄송 합니다
프로필 이미지
가날
2020-06-10
2304
글번호 139671
시스템
답변완료

문의 드립니다

안녕하세요! 1, 아래 67854번 관련 어제 아래와같은 답변을 받았는데요(수식1) 제가 바라는것은 캔들이 해당 기준선에 도달한 직후부터 이후 1-2분정도만 음성신호가 발생되는 수식이었으면합니다 가능하다면 다시 부탁드리겠습니다 2, 아래 (수식2) 에서도 음성신호 수식으로 수정 부탁드립니다 * 단, plot3 부터 plot8까지의 부분만 음성이 나오면 됩니다 자꾸 번거롭게해드려서 죄송하고 감사합니다 !!! --------------------------------------------------------------------------------------- (수식1) Inputs: TurnLen(9), StdLen(26), PrdLen(52); Variables: 기준선(0); 기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2; Plot1(기준선, "기준선"); var1 = TimeToMinutes(stime); var2 = TimeToMinutes(time); if crossup(h,기준선) or CrossDown(l,기준선) Then { if var2 >= var1+50 then PlaySound("C:₩예스트레이더₩data₩Sound₩60분기준선.wav"); } (수식 2) var : CC(0,data1),HH(0,data1),LL(0,data1),OO(0,data1); var : C1(0,data1),H1(0,data1),L1(0,data1),O1(0,data1); var : C2(0,data1),H2(0,data1),L2(0,data1),O2(0,data1); CC = (data1(c)+data2(c))/2; if data1(date != date[1]) Then { HH = CC; LL = CC; OO = (data1(O)+data2(O))/2; O1 = OO[1]; O2 = O1[1]; C1 = CC[1]; C2 = C1[1]; H1 = HH[1]; H2 = H1[1]; L1 = LL[1]; L2 = L1[1]; } if CC > HH Then HH = CC; if CC < LL Then LL = CC; plot1(HH,"중간값 중 당일 최고값"); plot2(LL,"중간값 중 당일 최저값"); plot3(C1,"전일종가합/2"); plot4(H1,"전일 중간값 중 당일 최고값"); plot5(L1,"전일 중간값 중 당일 최저값"); plot6(C2,"전전일종가합/2"); plot7(H2,"전전일 중간값 중 당일 최고값"); plot8(L2,"전전일 중간값 중 당일 최저값");
프로필 이미지
유로파54
2020-06-10
2050
글번호 139670
지표
답변완료

문의드립니다

긴시간의 분봉을 이용하여 Onclose 주문을 이용한 시스템을 작성하였을 때에 시뮬레이션상으로는 해당 봉의 종가에 청산되는 것으로 나오는데 예를 들어 120분봉을 사용한다고 가정하였을때에 하루에 봉은 4개입니다. 1번봉 9시~11시 / 2번봉 11시~1시 / 3번봉 1시~3시 / 4번봉 3시~5시 코스피 200 선물의 경우 만기일이 아닌 경우 3시36분~45분 종가 단일가인데 4번봉에서 Onclose주문이 나갔을 때에 몇시 몇분에 주문이 나가는지 궁금합니다. 만기일일 경우와 만기일이 아닐 경우에 자동적으로 알아서 분이 수정되는지도 궁금합니다. 만약 이런 기능을 제공하지 않는다면 해결법에 대해서도 알려주시면 감사하겠습니다.
프로필 이미지
파트라
2020-06-09
1996
글번호 139666
시스템
답변완료

수식 문의드려요.

과거 10개봉중 RSI(20)이하이며 전최저점인 봉을 현저점이 돌파하고 돌파한 종가의 RSI값이 전저점보다 높으면 매수 (최근 5개봉 이내 매수를 진입한 경우 재진입 금지) 과거 10개봉중 RSI(80)이상이며 전최고점인 봉을 현고점이 돌파하고 돌파한 종가의 RSI값이 전고점보다 낮으면 매도 (최근 5개봉 이내 매도를 진입한 경우 재진입 금지) 매수진입 이후 10개봉중 RSI(80)이상이며 전최고점인 봉을 현고점이 돌파하고 돌파한 종가의 RSI값이 전고점보다 낮으면 매수청산 매도진입 이후 10개봉중 RSI(20)이하이며 전최저점인 봉을 현저점이 돌파하고 돌파한 종가의 RSI값이 전저점보다 높으면 매도청산
프로필 이미지
에이드
2020-06-09
1998
글번호 139665
시스템
답변완료

문의드립니다.

늘 수고가 많습니다. 10시 15분과 18시 15분 항생장이 시작할때 갭문제로 고민중입니다. 나름 해결방안으로 직전 종가보다 150틱(조정가능) 이상 갭으로 상승 또는 하락으로 시작할때 그 시가 위에서 매수신호만 나오고 시가 아래에선 매도신호만 나오게 하고 싶습니다. 즉, 10시 15분과 18시 15분 이후 2시간 동안만 매매가 되게 하는 5, 20이평 골드/데드 시 스템신호인데 갭이 150틱이상 벌려져서 갭상승으로 시작할땐 시가 위에서만 신호가 나오고 150틱이상 벌려져서 갭하락으로 시작할땐 시가 아래에서 매도신호만 나오게 하고 싶습니 다. (시가 위나 시가 아래의 기준은 봉의 종가기준입니다) 감사드립니다.
프로필 이미지
카르마다
2020-06-09
2038
글번호 139664
지표