커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

Input:계산시작일(20230101), // 차트 처음부터 계산하려면 0을 입력 차트반영일(20240101), 연장여부(1), // 연장여부가 0이면 차트반영일까지만 계산한다. // 연장여부가 1이면 현재일까지 누적 계산한다. // 추세선을 계속 지우고 다시 그리기를 반복하므로 연장여부를 1로 하려면 // 차트반영일을 현재일에 가깝게 입력한다. 연산시간과 관련있음 매물대개수(10), 수치표시(1), 추세선간격(4); Var:j(0),jj(0),Continue(True),sBar(0),eBar(0),출력매물대개수(0),sIndex(0),Length(0), TitleBar(0), // 차트제목을 화면에 출력하기 위한 좌표 TitlePrice(0), // 거래량이 가장 많은 매물대의 중간 가격 TitleName(""); // 차트 제목 Array:VolProfileArr[100,5](0), // 열번호 1:가격이상,2:가격미만,3:sBar,4:수량,5:비율 TL[100,4](0),Text[101](0); #==========================================# IF 매물대개수 > 98 Then { Alert("매물대개수는 98까지만 허용합니다."); Continue = False; } If Continue Then { #----------------------------------------------------------------------------------# # 시작하기 #----------------------------------------------------------------------------------# Value1 = 0; If (Date[1] < 계산시작일 and Date >= 계산시작일) or // 계산시작일이 있으면 날짜 통과 시점에 (계산시작일 == 0 and Index == 0) Then { // 계산시작일이 0이면 첫번째 봉부터 sIndex = Index; // 계산시작일로부터의 봉개수를 계산하기 위해 Index를 저장 } If (Date[1] < 차트반영일 and Date >= 차트반영일) or (Date >= 차트반영일 and 연장여부 > 0) Then { Length = Index - sIndex + 1; 출력매물대개수 = 매물대개수; // 매물대 개수를 입력하면 적당한 가격단위로 자른 뒤 출력할 매물대개수를 리턴한다. Value1 = VolumeProfile(Length,출력매물대개수,VolProfileArr,TitleBar,TitlePrice,TitleName); // 여기 지표식에서는 계산시작일과 차트반영일을 입력받아서 처리했지만 // 조건에 맞는 MRO 값을 Length 대신에 써도 된다. } If Value1 == 1 Then { For j = 1 To 출력매물대개수[1] { // 싹다 지우고 다시 그린다. // 출력매물대개수는 구간에 따라 바뀌기 때문에 입력값 기준으로 지운다. For jj = 1 To 4 { TL_Delete(TL[j,jj]); } If 수치표시 > 0 Then Text_Delete(Text[j]); } For j = 1 To 출력매물대개수 { // 리턴받은 매물대 개수만큼 그린다. If VolProfileArr[j,4] > 0 Then { sBar = VolProfileArr[j,3]; eBar = 0; TL[j,1] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,1] + 추세선간격 * PriceScale,sDate[eBar],sTime[eBar],VolProfileArr[j,1] + 추세선간격 * PriceScale); TL[j,2] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,2] - 추세선간격 * PriceScale,sDate[eBar],sTime[eBar],VolProfileArr[j,2] - 추세선간격 * PriceScale); TL[j,3] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,1] + 추세선간격 * PriceScale,sDate[sBar],sTime[sBar],VolProfileArr[j,2] - 추세선간격 * PriceScale); } TL[j,4] = TL_New(sDate[0],sTime[0],VolProfileArr[j,1] + 추세선간격 * PriceScale, sDate[0],sTime[0],VolProfileArr[j,2] - 추세선간격 * PriceScale); If 수치표시 > 0 Then { Text[j] = Text_New(sDate[0],stime[0],(VolProfileArr[j,1] + VolProfileArr[j,2]) / 2, NumToStr(VolProfileArr[j,4],0) + " (" + NumToStr(VolProfileArr[j,5],2) + "%)(" + NumToStr(VolProfileArr[j,1],0) + " ~ " + NumToStr(VolProfileArr[j,2],0) + ")"); Text_SetStyle(Text[j], 1, 2); } } Text_Delete(Text[0]); sBar = TitleBar; Text[0] = Text_New(sDate[sBar], stime[sBar],TitlePrice,TitleName); Text_SetStyle(Text[0], 2, 1); } } plot1(Value1); 위수식을 바탕으로 아래와 같은 지표수식을 추가 부탁드립니다 MavH :최대 매물대의 상한벽의 가격 MavL: 최대 매물대의 하한벽의 가격
프로필 이미지
kns
2024-01-17
829
글번호 175836
지표
답변완료

시스템식 부탁드립니다.

항상 도움주셔서 감사합니다. 지난번 문의 드린 내용인데 청산들 내용이 모호하다 하셔서 다시 내용수정하여 문의 드립니다. 아래의 조건에 맞는 시스템식 부탁드립다. 종목 : 해외선물 차트 : 1분봉 요청식1 매수조건 매수/매도 : 외부입력변수로 설정 매수진입 이후 가격이 상승하면 일정 간격으로 1계약씩 추가 매수하고 - 불타기 매수진입 이후 가격이 하락하면 일정 간격으로 일정배수 만큼 추가 매수 합니다. - 물타기(가격 하락시 일정배수로 매수) 불타기 청산은 포지션 전체수익이 일정 금액($) 이상 수익이면 청산(큰 금액으로 설정) 물타기 청산은 포지션 전체수익이 일정 금액($) 이상 수익이면 청산(작은금액으로 설정) 단, 불타기 진입의 경우 트레일링 스탑을 적용하고 싶습니다. - 전체 포지션 수익금액에서 20$ 하락시 청산 아래와 같이 코딩했는데 제대로 안되는것 같습니다. 시스템식 수정 부탁드립니다. input : Pst(1); input : gap(20), tgap(20), pt(25), pt2(100), multi(0.7); var : vol(0),vol2(0); value1 = gap/PointValue; value2 = tgap/PointValue; // 불타기 트레일링 스탑 value3 = pt/PointValue; //물타기 청산 value4 = pt2/PointValue; //불타기 청산 if pst == 1 Then { if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then { vol = 1; vol2 = 1; Buy("b",OnClose,Def,vol); } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then vol = vol+Round(vol*multi,0); vol2 = vol2+1; Buy("upb",AtLimit,EntryPrice(0)+(PriceScale*value1)*MaxEntries,vol2); Buy("dnb",AtLimit,EntryPrice(0)-(PriceScale*value1)*MaxEntries,vol); exitlong("bx",AtLimit,EntryPrice(0)+PriceScale*Value3); exitlong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2); } } 요청식2 매수조건 매수/매도 : 외부입력변수로 설정 매수진입 이후 가격이 상승하면 일정 간격으로 1계약씩 추가 매수하고(불타기) 매수진입 이후 가격이 하락하면 일정 간격으로 1계약씩 추가 매수 합니다.(물타기) 불타기 매수청산은 포지션 전체수익이 일정금액($) 이상 수익(큰금액)이 나면 청산 단,불타기 진입의 경우 트레일링 스탑을 적용하고 싶습니다. - 전체 포지션 수익금액에서 20$ 하락시 청산 물타기 진입의 경우 가격이 다시 일정금액(20$) 상승한 경우 진입한 계약별로 포지션 수익이 20$ 이상이면 개별 청산하고 싶습니다. 그러다가 가격이 다시 하락하면 다시 1계약씩 추가 진입합니다. 이런식으로 청산과 진입을 반복하다 현재 포지션 수익과 포지션 오픈이후 청산수익이 일정금액(20$) 이상 수익이면 물타기 전체 포지션을 청산합니다. 제가 올려드린 샘플 코딩을 바탕으로 시스템식 수정 부탁드립니다. 요청식3 매수조건 매수/매도 : 외부입력변수로 설정 매수진입 이후 가격이 상승하면 처음 진입한 1계약만 유지하고 매수진입 이후 가격이 하락하면 일정 간격으로 1계약씩 추가 매수 합니다.(물타기) 매수청산은 가격이 상승한 경우 매수청산은 포지션 전체수익이 일정금액 ($) 이상 수익이 나면 청산합니다. 반대로 가격이 하락하여 물타기 진입한 경우 전체 계약수가 10계약 이내이면 포지션 전체수익이 일정금액($) 이상 수익이 나면 청산합니다. 단, 가격이 계속 하락하여 10계약 이상 진입이 필요한 경우 가격이 하락하여 추가로 진입 할때마다 처음 진입한 계약부터 1계약씩 손절(20$) 하고 싶습니다. (1계약씩 추가 진입하고 1계약씩 추가 손절하기 때문에 계약수는 10계약씩 유지되다가, 가격이 상승하면 포지션 전체 수익이 일정금액($) 이상 수익이 나면 청산합니다. 제가 올려드린 샘플 코딩을 바탕으로 시스템식 수정 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2024-01-17
797
글번호 175835
시스템
답변완료

안녕하세요~ 수식 부탁드립니다~

data1에 원달러선물 1분봉 data2에 코스피선물 일봉 data3에 다우산업지수 일봉 이렇게 넣어두고 하려고 하고요. 원달러 선물 갭을 먹는 전략을 만들어 보려고 합니다. 1. 매수 진입 조건 1) 3시 20분 현재 코스피선물이 음봉 2) 전일 다우산업지수 음봉 3) 3시 20분에 원달러선물 매수 진입 2. 매도 진입 조건 1) 3시 20분 현재 코스피선물이 양봉 2) 전일 다우산업지수 양봉 3) 3시 20분에 원달러선물 매도 진입 3. 청산 조건 1) 익일 시초가에 청산 이렇게 가능할가요? 만약 안되면 코스피선물 일봉을 1분봉으로 변경해서 만들어 주셔도 괜찮습니다. 감사합니다~`
프로필 이미지
예쁘게살자
2024-01-17
606
글번호 175832
시스템

관리자에 의해 예스스팟 QnA로 이동되었습니다

프로필 이미지
만경
2024-01-17
13
글번호 175828
종목검색

중박주식 님에 의해서 삭제되었습니다.

프로필 이미지
중박주식
2024-01-17
22
글번호 175827
지표

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

프로필 이미지
파워
2024-01-16
658
글번호 175826
지표

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

프로필 이미지
파워
2024-01-16
557
글번호 175825
지표
답변완료

문의 드립니다....

var : cnt(0),S(0); if sDate != sDate[1] Then { cnt = 0; S = 0; } if sDate == sDate[3] and CrossUp(C,DayOpen) Then cnt = cnt+1; if C < dayopen Then S = S+1; if cnt==1 and cnt[1]==0 and S>1 and C > O Then Find(1); 위에것을 만족하면서 5분봉 캔들의 거래대금이 10억이상인 캔들이 검색되도록 부탁드립니다
프로필 이미지
wkri
2024-01-16
706
글번호 175824
종목검색
답변완료

부탁드립니다

키움식 인데...예스로 전환 부탁드립니다 A=IF(C>O,V,0); B=SUM(A); D=ValueWhen(1,Date(1)!=Date,B(1)); AA=B-D; A1=IF(C<O,V,0); B1=SUM(A1); D1=ValueWhen(1,Date(1)!=Date,B1(1)); AA1=B1-D1; BB=(avg(C*V,9)-avg(C*V,26))/avg(C*V,9)*100; ((AA>AA1 AND CROSSUP(BB,0)) OR (CROSSUP(AA,AA1) AND BB>0))
프로필 이미지
시나브로
2024-01-16
512
글번호 175822
종목검색

중박주식 님에 의해서 삭제되었습니다.

프로필 이미지
중박주식
2024-01-16
3
글번호 175820
시스템