커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식문의 드립니다.

안녕하세요. 아래는 차트 설명입니다. ================================================================================= 양봉의 거래량은 양수, 음봉의 거래량은 음수로 표시된다고 가정하고, 파란색 세로선) 전일 거래량은 포함하지 않은 당일 발생된 봉만 기준으로, 장시작 후 첫째봉을 제외한 최근 20봉 거래량 합이 +1000을 돌파할 때 하늘색 동그라미) 파란색 세로줄이 발생후, 가격상 고점을 갱신하다가, '처음'으로 2봉연속 고점을 갱신하지 못하고 눌릴때 2봉전의 고점. 검정색 가로선) 하늘색 동그라미봉의 고가라인선. ================================================================================== 지표1) 장시작 후 발생되는 검정색 가로선을 표시하되, 이후에 발생되는 검정색 가로선은 앞서 발생 된 가로선들의 가격보다 저점이 갱신될때만 표시할 것. 감사합니다~
프로필 이미지
zigzig
2023-12-18
943
글번호 174932
지표
답변완료

문의

베이시스를 이용한 수식입니다. 입력한 시간동안 발생한 봉의 갯수를 세고 베이시스 최빈값 (m1)을 구합니다. 최빈값을 상승 돌파하면 buy ex) 094500 ~ 104500 1분봉이며 60개를 모두 세고 최빈값을 구합니다. 진입이후 발생한 봉의 갯수를 세고 베이시스 최빈값(m2)을 구합니다. 최빈값을 하락 돌파하면 exitlong 아래 수식을 완성하여 주십시요. 항상 감사합니다. ********************************************************************************************** input : 진입시간1(094500), 진입시간2(104500); input : 청산봉수(30); input : ba(0,data1), m1(0,data1), m2(0,data1); ba=data2(c)-data3(c); if 진입시간1 and 진입시간2 and ba>m1 then buy("b"); if 청산봉수 and ba<m2 then exitlong("x");
프로필 이미지
목마와숙녀
2023-12-18
1229
글번호 174930
시스템
답변완료

문의 드립니다

안녕하세요 수고 많으십니다 아래 수식 오류 검토 부탁드립니다 input : N(3); var : A(0),B(0),A1(0),B1(0); A=(C-BollBandDown(20,2)) / (BollBandUp(20,2) - BollBandDown(20,2)) * 100; B=((C+O)/2-BollBandDown(20,2)) / (BollBandUp(20,2)-BollBandDown(20,2)) * 100; A1=B>=50 && B<=100; B1=accum(A1,N) == N; If B1[1] && CrossUp(A,100) Then Find(1);
프로필 이미지
힘찬하루
2023-12-18
1207
글번호 174929
검색
답변완료

쿠루드오일 매매 수식 부탁드리겠습니다.

항상 도움을 주셔서 감사합니다. 자동매매로 잘 활용중에 있습니다. 다음 수식 부탁드릴께요~~ 종목: 크루드 오일 차트 60분봉 적용플렛폼 유진선물 예스트레이드 최초 매수 RSI (20) < 30 일때 1계약 계약 추가매수 1.최초진입값에서 5포인트 하락시마다 1계약식 추가매수 (5%하락이 아님 ) 2.추가매수는 max 20계약까지만 계약 청산 1. 각각 진입가격에서 6포인트 상승시 매수청산 예를 들어 최초매수가격이 70포인트 추가매수 65포인트 1개 추가 매수 60포인트 1추가매수 55포인트 1개 추가 매수 총 4계약 매수 처리된 상태에서 올라서 61포인트에서 55포인트에서 매수한 계약분은 청산 66포인트에서는 60포인트에서 매수한 계약분 청산 (첨부화일 차트 참조) 이런 형태로 매수-청산될수있도록 되는 수식 시스템 부탁드림니다. 첨부화일은 초기 진입을 임의로 90포인트에서 진입하는것으로 설정했습니다. # SP 60분봉 202 # 2023년 11월 18일 매도 버전 일부 변경 익절1 1.5 --> 1.6 MFI값(18)--> 40 input : 시작일(10230524); input : MFI기간(30),MFI값(40); input : X(250),Y(100); input : 매매기준선(4); input : 분할매수포인트(0.1); input : 익절포인트(0.1); var : MoneyFlow(0),MoneyFlow1(0); MoneyFlow = MFI(MFI기간); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 and MoneyFlow <= MFI값 and C <= Highest(H,X)-PriceScale*Y and C < 매매기준선 Then { Buy("b1",OnClose,Def,1); ExitLong("bx1",AtLimit,c+익절포인트,"b1"); } } if MarketPosition == 1 Then { if L > EntryPrice - 분할매수포인트 Then { Buy("b2",AtLimit,EntryPrice- 분할매수포인트,1); ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice)*10,"b2"); } if L > EntryPrice-분할매수포인트*2 Then { Buy("b3",AtLimit,EntryPrice- 분할매수포인트*2,1); ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice)*10,"b3"); } if L > EntryPrice-분할매수포인트*3 Then { Buy("b4",AtLimit,EntryPrice- 분할매수포인트*3,1); ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice)*10,"b4"); } if L > EntryPrice-분할매수포인트*4 Then { Buy("b5",AtLimit,EntryPrice- 분할매수포인트*4,1); ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice)*10,"b5"); } if L > EntryPrice-분할매수포인트*5 Then { Buy("b6",AtLimit,EntryPrice- 분할매수포인트*5,1); ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice)*10,"b6"); } if L > EntryPrice-분할매수포인트*6 Then { Buy("b7",AtLimit,EntryPrice- 분할매수포인트*6,1); ExitLong("bx7",AtLimit,min(NextBarOpen,EntryPrice)*10,"b7"); } if L > EntryPrice-분할매수포인트*7 Then { Buy("b8",AtLimit,EntryPrice- 분할매수포인트*7,1); ExitLong("bx8",AtLimit,min(NextBarOpen,EntryPrice)*10,"b8"); } if L > EntryPrice-분할매수포인트*8 Then { Buy("b9",AtLimit,EntryPrice- 분할매수포인트*8,1); ExitLong("bx9",AtLimit,min(NextBarOpen,EntryPrice)*10,"b9"); } if L > EntryPrice-분할매수포인트*9 Then { Buy("b10",AtLimit,EntryPrice- 분할매수포인트*9,1); ExitLong("bx10",AtLimit,min(NextBarOpen,EntryPrice)*10,"b10"); } if L > EntryPrice-분할매수포인트*10 Then { Buy("b11",AtLimit,EntryPrice- 분할매수포인트*10,1); ExitLong("bx11",AtLimit,min(NextBarOpen,EntryPrice)*10,"b11"); } if L > EntryPrice-분할매수포인트*11 Then { Buy("b12",AtLimit,EntryPrice- 분할매수포인트*11,1); ExitLong("bx12",AtLimit,min(NextBarOpen,EntryPrice)*10,"b12"); } if L > EntryPrice-분할매수포인트*12 Then { Buy("b13",AtLimit,EntryPrice- 분할매수포인트*12,1); ExitLong("bx13",AtLimit,min(NextBarOpen,EntryPrice)*10,"b13"); } if L > EntryPrice-분할매수포인트*13 Then { Buy("b14",AtLimit,EntryPrice- 분할매수포인트*13,1); ExitLong("bx14",AtLimit,min(NextBarOpen,EntryPrice)*10,"b14"); } if L > EntryPrice-분할매수포인트*14 Then { Buy("b15",AtLimit,EntryPrice- 분할매수포인트*14,1); ExitLong("bx15",AtLimit,min(NextBarOpen,EntryPrice)*10,"b15"); } if L > EntryPrice-분할매수포인트*15 Then { Buy("b16",AtLimit,EntryPrice- 분할매수포인트*15,1); ExitLong("bx16",AtLimit,min(NextBarOpen,EntryPrice)*10,"b16"); } if L > EntryPrice-분할매수포인트*16 Then { Buy("b17",AtLimit,EntryPrice- 분할매수포인트*16,1); ExitLong("bx17",AtLimit,min(NextBarOpen,EntryPrice)*10,"b17"); } if L > EntryPrice-분할매수포인트*17 Then { Buy("b18",AtLimit,EntryPrice- 분할매수포인트*17,1); ExitLong("bx18",AtLimit,min(NextBarOpen,EntryPrice)*10,"b18"); } if L > EntryPrice-분할매수포인트*18 Then { Buy("b19",AtLimit,EntryPrice- 분할매수포인트*18,1); ExitLong("bx19",AtLimit,min(NextBarOpen,EntryPrice)*10,"b19"); } if L > EntryPrice-분할매수포인트*19 Then { Buy("b20",AtLimit,EntryPrice- 분할매수포인트*19,1); ExitLong("bx20",AtLimit,min(NextBarOpen,EntryPrice)*10,"b20"); } # SetStopProfittarget(청산퍼센트,PercentStop); if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "b1" Then value1 = LatestEntryPrice(0); if LatestEntryName(0) == "b2" Then value2 = LatestEntryPrice(0); if LatestEntryName(0) == "b3" Then value3 = LatestEntryPrice(0); if LatestEntryName(0) == "b4" Then value4 = LatestEntryPrice(0); if LatestEntryName(0) == "b5" Then value5 = LatestEntryPrice(0); if LatestEntryName(0) == "b6" Then value6 = LatestEntryPrice(0); if LatestEntryName(0) == "b7" Then value7 = LatestEntryPrice(0); if LatestEntryName(0) == "b8" Then value8 = LatestEntryPrice(0); if LatestEntryName(0) == "b9" Then value9 = LatestEntryPrice(0); if LatestEntryName(0) == "b10" Then value10 = LatestEntryPrice(0); if LatestEntryName(0) == "b11" Then value11 = LatestEntryPrice(0); if LatestEntryName(0) == "b12" Then value12 = LatestEntryPrice(0); if LatestEntryName(0) == "b13" Then value13 = LatestEntryPrice(0); if LatestEntryName(0) == "b14" Then value14 = LatestEntryPrice(0); if LatestEntryName(0) == "b15" Then value15 = LatestEntryPrice(0); if LatestEntryName(0) == "b16" Then value16 = LatestEntryPrice(0); if LatestEntryName(0) == "b17" Then value17 = LatestEntryPrice(0); if LatestEntryName(0) == "b18" Then value18 = LatestEntryPrice(0); if LatestEntryName(0) == "b19" Then value19 = LatestEntryPrice(0); if LatestEntryName(0) == "b20" Then value20 = LatestEntryPrice(0); } if value1 > 0 Then ExitLong("bx1.",AtLimit,value1+ 익절포인트,"b1"); if value2 > 0 Then ExitLong("bx2.",AtLimit,value2+ 익절포인트,"b2"); if value3 > 0 Then ExitLong("bx3.",AtLimit,value3+ 익절포인트,"b3"); if value4 > 0 Then ExitLong("bx4.",AtLimit,value4+ 익절포인트,"b4"); if value5 > 0 Then ExitLong("bx5.",AtLimit,value5+ 익절포인트,"b5"); if value6 > 0 Then ExitLong("bx6.",AtLimit,value6+ 익절포인트,"b6"); if value7 > 0 Then ExitLong("bx7.",AtLimit,value7+ 익절포인트,"b7"); if value8 > 0 Then ExitLong("bx8.",AtLimit,value8+ 익절포인트,"b8"); if value9 > 0 Then ExitLong("bx9.",AtLimit,value9+ 익절포인트,"b9"); if value10 > 0 Then ExitLong("bx10.",AtLimit,value10+ 익절포인트,"b10"); if value11 > 0 Then ExitLong("bx11.",AtLimit,value11+ 익절포인트,"b11"); if value12 > 0 Then ExitLong("bx12.",AtLimit,value12+ 익절포인트,"b12"); if value13 > 0 Then ExitLong("bx13.",AtLimit,value13+ 익절포인트,"b13"); if value14 > 0 Then ExitLong("bx14.",AtLimit,value14+ 익절포인트,"b14"); if value15 > 0 Then ExitLong("bx15.",AtLimit,value15+ 익절포인트,"b15"); if value16 > 0 Then ExitLong("bx16.",AtLimit,value16+ 익절포인트,"b16"); if value17 > 0 Then ExitLong("bx17.",AtLimit,value17+ 익절포인트,"b17"); if value18 > 0 Then ExitLong("bx18.",AtLimit,value18+ 익절포인트,"b18"); if value19 > 0 Then ExitLong("bx19.",AtLimit,value19+ 익절포인트,"b19"); if value20 > 0 Then ExitLong("bx20.",AtLimit,value20+ 익절포인트,"b20"); } Else { value1 = 0; value2 = 0; value3 = 0; value4 = 0; value5 = 0; value6 = 0; value7 = 0; value8 = 0; value9 = 0; value10 = 0; value11 = 0; value12 = 0; value13 = 0; value14 = 0; value15 = 0; value16 = 0; value17 = 0; value18 = 0; value19 = 0; value20 = 0; }
프로필 이미지
이형지
2023-12-24
1217
글번호 174928
시스템
답변완료

문의 드립니다

안녕하세요 rsi지표을 동시에3개(7,14,21)을 동시에 나타내고 rsi3선이 정배열일때 매수 화살표(빨강) 역배열일때 매도 화살표(파랑)을 지표상에 나타내고자 합니다 부탁드립니다
프로필 이미지
만강
2023-12-18
698
글번호 174927
지표
답변완료

문의 드립니다.

도와주셔서 감사합니다. var : WH(0),WL(0),WH1(0),WL1(0),WO(0); if DayOfWeek(Bdate) < DayOfWeek(Bdate[1]) Then { WO = O; WH = H; WL = L; WH1 = WH[1]; WL1 = WL[1]; } if H > WH Then WH = H; if L < WL Then WL = L; if WH1 > 0 and WL1 > 0 Then { var1 = (WH1-WL1)*3; Var2 = WO-var1/2; Plot1(Var2+var1*0.00); Plot2(Var2+var1*0.50); Plot3(Var2+var1*1.0); } 이것에서 전월봉으로 어떻게 수정하죠? 감사합니다.
프로필 이미지
스오어스
2023-12-18
1122
글번호 174924
지표
답변완료

종목 검색시 find 뒤의 괄호안에 특정조건 발생 이후 봉 갯수를 세게끔 하고 싶습니다.

안녕하세요? 수고가 많으십니다. 종목 검색시에 붙이는 find 명령어 뒤의 괄호 안에 조건1이후 몇 봉이 지났는지를 세게끔 하고 싶습니다. if var1>var2 then find(조건1 이후의 봉 갯수); 부탁드립니다. 감사합니다 꾸벅
프로필 이미지
매매신호
2023-12-18
1039
글번호 174923
종목검색
답변완료

수정 부탁드립니다.

일전에 만들어 주신 시스템식을 아래와 같이 3가지로 만들고 싶은데 가능할까요? 1. 매수신호에 매수'진입'하고, 매도신호에는 매수'청산' 만 되도록 (청산과 동시 매도진입X), 2. 매도신호에 매도'진입'하고, 매수신호에 매도'청산' 만 되도록 (청산과 동시 매수진입X). 3. ema 100 위 매수신호에 매수'진입'하고, 매도신호에는 매수'청산' 만 되도록 (청산과 동시 매도진입X), ema 100 아래 매도신호에 매도'진입'하고, 매수신호에 매도'청산' 만 되도록 (청산과 동시 매수진입X). 항상 감사드립니다~!! input : keyvalue(5); input : atrperiod(10); var : src(0),xatr(0),nloss(0),xATRTrailingStop(0),pos(0),xcolor(0); src = close; xATR = atr(atrperiod); nLoss = keyvalue * xATR; xATRTrailingStop = 0.0; xATRTrailingStop = iff(src > iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]) and src[1] > iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), max(iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), src - nLoss), iff(src < iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]) and src[1] < iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), min(iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), src + nLoss), iff(src > iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), src - nLoss, src + nLoss))); pos = 0; pos = iff(src[1] < iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]) and src > iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), 1, iff(src[1] > iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]) and src < iff(IsNan(xATRTrailingStop[1]) == true, 0,xATRTrailingStop[1]), -1, iff(IsNan(pos[1])==true, 0,pos[1]))); xcolor = iff(pos == -1 , red , iff(pos == 1 , green ,blue)); Condition1 = CrossUp(src,xATRTrailingStop); Condition2 = CrossDown(src,xATRTrailingStop); if Condition1 == true Then Buy("Buy"); if Condition2 == true Then Sell("Sell");
프로필 이미지
사노소이
2023-12-18
1078
글번호 174922
시스템
답변완료

검색식 질문드려봅니다

1. 기준봉 조건 : 시가 대비 종가 10% 이상 시가 대비 고가 15% 이상 거래대금 100억 이상 2. 위 기준봉을 고가로 돌파한 돌파봉을 검색 3. 돌파봉은 기준봉이 출현한후 20일 내로 나와야 함 (20일 내로 나와야 한다는것은 반대로 19일 이후 출현도 가능하다는 의미) 4. 기준봉과 돌파봉의 사이의 기간이 20일인데 그 사이에 종가로 10일 이동평균선을 이탈한 캔들이 최소 하나 이상이 나와야 함 예시로 23년 12월 15일에 검색된다면 그 검색일에는 위 조건을 모두 만족하며 15일 당일에 기준봉을 돌파한 돌파봉이 검색되어야 합니다 아래는 예시입니다 (첫째날 기준봉 출현, 둘째날 10선이탈봉 출현, 셋째날 돌파봉 출현 --> 조건 만족 첫째날 기준봉 출현, 둘째날 돌파봉 출현 --> 조건 불만족 첫째날 기준봉 출현, 5일째 10선 이탈봉 출현, 15일이후 돌파봉 출현 --> 조건 만족 첫째날 기준봉 출현, 5일째 음봉 출현했으나 10선 이탈은 아님, 15일이후 돌파봉 출현 --> 조건 불만족) 위 조건을 모두 만족하는 조건검색식을 일봉 기준과 주봉 기준으로 나오게끔 답변 부탁드립니다 감사합니다
프로필 이미지
재료스윙
2023-12-17
1395
글번호 174920
검색
답변완료

If 다음에 and를 많이 붙이면 에러가 생기는지요?

안녕하세요? 어제 검색식을 만들고 나서 문법오류가 없는 것을 확인하고 챠트에서 보이게 할 때에 에러가 생기면서 예스트레이더가 꺼지는 일이 있었습니다. 계속 다시 켜도 꺼졌는데, 다행이도 그날 백업해둔게 있어서 예스랭귀지 폴더를 이전 폴더로 교체하고 나서 괜찮아졌습니다. 당시 수식은 별다른 것은 없고 If var1>var2 and var3>var4 and var5>var6.....var8>var9 then plot(h*1.05, "검색1"); 이런 수식이었습니다 and를 아주 많이 붙였는데 이것이 에러의 원인이 될 수 있는지 여쭙니다. 감사합니다.
프로필 이미지
매매신호
2023-12-17
1188
글번호 174919
검색