커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 문의

아래는 본 게시판에 수식지왕님이 공개해 주신 지표 입니다. 질문 : ㄱ. 매일매일 만들어지는 plot 1,2,3을 당일만 뿌리지 말고, n봉이상으로 쭉 늘려서 뿌려주고 싶습니다. n봉의 값에 따라, 4일전 만들어진 plot1,2,3도 오늘 차트에 뿌려지고, 3일전 만들어진 polt1,2,3도 오늘 차트에 뿌려지고... 뭐 그런 식으로 되겠죠.. ㄴ. ㄱ. 지표를 data2 에 적용할 수 있도록 수정하고 싶습니다. ############################## input:n(1), 인타발(15); var:arr(0),j(0),k(0),tick(0),chk_cnt(0),ttm(0),t_val(0),max_tpo(0),tot_tpo(0), sum(0),acc(0),mdl_prc(0),mdl_arr(0),range_u(0),range_d(0),base(0), cal_tpo(0),up_tpo(0),dn_tpo(0),up_tail_u(0),up_tail_d(0),dn_tail_u(0),dn_tail_d(0); array:price_u[100](0),price_m[100](0),price_d[100](0), status_u[100](0),status_m[100](0),status_d[100](0), tpo_u[100](0),tpo_m[100](0),tpo_d[100](0); if CodeCategoryEX() == 11 then //Kospi 주식 { if C >= 500000 then tick = 1000; else if C >= 100000 then tick = 500; else if C >= 50000 then tick = 100; else if C >= 10000 then tick = 50; else if C >= 5000 then tick = 10; else tick = 5; } if CodeCategoryEX() == 12 then //Kosdaq 주식 { if C >= 50000 then tick = 100; else if C >= 10000 then tick = 50; else if C >= 5000 then tick = 10; else tick = 5; } if CodeCategoryEX() == 21 then //Kospi200 선물 tick = 0.05; if CodeCategoryEX() == 31 or CodeCategoryEX() == 32 then //Kospi200 콜옵션,풋옵션 { if C >= 3.0 then tick = 0.05; else tick = 0.01; } var1 = dayindex(); //전일 데이터를 이용하는 로직이므로 과거참조가 들어가는데 dayindex()의 경우 //dayindex()[n]으로 사용할 수 없어 dayindex()값을 일반변수에 move하여 사용하여야 합니다. //예전에도 이런 경험을 했었는데 기억력이 나쁘다보니 요번에도 여기서 좀 헤맸습니다. if dayindex()==0 then //당일 첫번째 봉에서만 계산 { for arr = 0 to 99 { price_u[arr] = 0; price_m[arr] = 0; price_d[arr] = 0; status_u[arr] = 0; status_m[arr] = 0; status_d[arr] = 0; tpo_u[arr] = 0; tpo_m[arr] = 0; tpo_d[arr] = 0; } max_tpo = 0; tot_tpo = 0; sum = 0; acc = 0; mdl_prc = 0; mdl_arr = 0; range_u = 0; range_d = 0; //n일 동안의 봉의 개수를 계산하여 계산할 첫번째 봉의 위치를 찾음 if n > 0 then { var2 = 0; for j = 1 to index { if var1[j] == 0 then var2 = var2 + 1; //dayindex()가 0 즉, 09시인 봉을 n번 찾음 if var2 == n then { var3 = j; j = index; } } } base = dayopen(n) + tick * 149; //n일전 시초가를 기준으로 가격대중 가장 상위의 가격 계산 price_u[0] = base; //지수 배열 상단 for arr = 1 to 99 { price_u[arr] = price_u[arr-1] - tick; } price_m[0] = price_u[99] - tick; //지수 배열 중단 for arr = 1 to 99 { price_m[arr] = price_m[arr-1] - tick; } price_d[0] = price_m[99] - tick; //지수 배열 하단 for arr = 1 to 99 { price_d[arr] = price_d[arr-1] - tick; } for j = var3 downto 1 { //n일전 시초봉에서부터 현재봉 1봉 이전 봉까지 순차적으로 계산 //이후 내용은 당일 지표식과 동일하므로 윗글 참조 ttm = TimeToMinutes(stime[j]); t_val = int((ttm-540)/인타발) + 1; for arr = 0 to 99 { if l[j] <= price_u[arr] and price_u[arr] <= h[j] then { if status_u[arr] < t_val then { status_u[arr] = t_val; tpo_u[arr] = tpo_u[arr] + 1; tot_tpo = tot_tpo + 1; if max_tpo < tpo_u[arr] then { max_tpo = tpo_u[arr]; sum = 0; acc = 0; } if max_tpo == tpo_u[arr] then { sum = sum + price_u[arr]; acc = acc + 1; } } } if l[j] <= price_m[arr] and price_m[arr] <= h[j] then { if status_m[arr] < t_val then { status_m[arr] = t_val; tpo_m[arr] = tpo_m[arr] + 1; tot_tpo = tot_tpo + 1; if max_tpo < tpo_m[arr] then { max_tpo = tpo_m[arr]; sum = 0; acc = 0; } if max_tpo == tpo_m[arr] then { sum = sum + price_m[arr]; acc = acc + 1; } } } if l[j] <= price_d[arr] and price_d[arr] <= h[j] then { if status_d[arr] < t_val then { status_d[arr] = t_val; tpo_d[arr] = tpo_d[arr] + 1; tot_tpo = tot_tpo + 1; if max_tpo < tpo_d[arr] then { max_tpo = tpo_d[arr]; sum = 0; acc = 0; } if max_tpo == tpo_d[arr] then { sum = sum + price_d[arr]; acc = acc + 1; } } } } } mdl_prc = round(sum/acc/tick,0)*tick; mdl_arr = int((base-mdl_prc)/tick); range_u = mdl_arr; range_d = mdl_arr; cal_tpo = iff(mdl_arr<100,tpo_u[mdl_arr],iff(mdl_arr<200,tpo_m[mdl_arr-100],tpo_d[mdl_arr-200])); for k = 0 to 150 { // range_u는 한단위씩 위로(-1), range_d는 한단위씩 아래로(+1) // TPO가 많은 쪽의 TPO를 먼저 누적한다 var4 = iff(range_u-1<100,tpo_u[range_u-1],iff(range_u-1<200,tpo_m[range_u-1-100],tpo_d[range_u-1-200])); var5 = iff(range_d+1<100,tpo_u[range_d+1],iff(range_d+1<200,tpo_m[range_d+1-100],tpo_d[range_d+1-200])); if var4 > var5 then { cal_tpo = cal_tpo + var4; range_u = range_u - 1; } else if var4 < var5 then { cal_tpo = cal_tpo + var5; range_d = range_d + 1; } else if var4 == var5 and var4 > 0 and var5 > 0 then { cal_tpo = cal_tpo + var4; range_u = range_u - 1; } if cal_tpo >= tot_tpo * 0.7 or var4 + var5 == 0 then k = 150; } up_tpo = 0; dn_tpo = 0; if tpo_u[0] == 1 then up_tail_u = 0; else up_tail_u = 299; up_tail_d = 0; dn_tail_u = 299; if tpo_d[99] == 1 then dn_tail_d = 299; else dn_tail_d = 0; for arr = 0 to mdl_arr-1 { if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])) == 0 and iff(arr+1<100,tpo_u[arr+1],iff(arr+1<200,tpo_m[arr-100+1],tpo_d[arr-200+1])) == 1 then up_tail_u = arr + 1; if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])) == 1 and iff(arr+1<100,tpo_u[arr+1],iff(arr+1<200,tpo_m[arr-100+1],tpo_d[arr-200+1])) > 1 and up_tail_d == 0 then up_tail_d = arr; if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])) > 1 then up_tpo = up_tpo + iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])); } for arr = 299 downto mdl_arr+1 { if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_u[arr-100],tpo_d[arr-200])) > 1 then dn_tpo = dn_tpo + iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])); if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])) == 1 and iff(arr-1<100,tpo_u[arr-1],iff(arr-1<200,tpo_m[arr-100-1],tpo_d[arr-200-1])) > 1 and dn_tail_u == 299 then dn_tail_u = arr; if iff(arr<100,tpo_u[arr],iff(arr<200,tpo_m[arr-100],tpo_d[arr-200])) == 0 and iff(arr-1<100,tpo_u[arr-1],iff(arr-1<200,tpo_m[arr-100-1],tpo_d[arr-200-1])) == 1 then dn_tail_d = arr - 1; } } plot1(mdl_prc,"중심가격"); plot2(base-(range_u*tick),"가치영역(상)"); plot3(base-(range_d*tick),"가치영역(하)"); if up_tail_u <= up_tail_d then { plot4(base-(up_tail_u*tick),"윗꼬리상단"); plot5(base-(up_tail_d*tick),"윗꼬리하단"); } if dn_tail_u <= dn_tail_d then { plot6(base-(dn_tail_u*tick),"아랫꼬리상단"); plot7(base-(dn_tail_d*tick),"아랫꼬리하단"); }
프로필 이미지
부똘이
2019-12-07
270
글번호 134208
지표
답변완료

수식 검증 부탁드림니다.

조건: 해외선물 쿠루드 오일 1분봉 매수 진입 조건 : 1.RSI(14) <15 2.심리도(14) < 15 1+2 동시에 만족할때 그 시점 부터 500틱 이하로 떨어졌을때 매수진입 (1.2동시 되는 시점에서 500틱이 떨어진 지점에서 1과 2의 조건이 되지 않아도 매수 진입 ) -->단 1+2조건을 동시에 만족하는 가격으로 부터 매수전까지 아래 매수청산 신호가 발생시 매수 진입 취소 매수 청산 CCI값이 crossdown(cci(14),50) 일때 청산 * 참고로 당일 내 매수진입이 되지 않았을경우 명일 세로 셋팅 예를 들어 1과 2조건에 들었지만 -500틱이하로 되지 않아 매수진입이 되지않 는경우라도 다음날은 처음부터 다시 시작하는 조건으로 시행해야함. ======================================================= 위 조건을 아래와 같이 했는데 완성을 못하겠네요..ㅠㅠ 도와주세요... Input : RSIPeriod(14),RSI매수값(15),SimPeriod(14),심리도값(15); Input : N1(1); Input : CCI기간(14),CCI값(50); value = CCI(CCI기간); RSIV = RSI(RSIPeriod); Simri = Simrido(SimPeriod); if MarketPosition <= 0 and countif( RSIV < RSI매수값 and Simri < 심리도값 ,N1 ) == N1 Then buy("매수",? ????) ; <-- 해당조건에서 -500틱 이하 될때 매수진입 -- countif( RSIV < RSI매수값 and Simri < 심리도값 ,N1 ) == N1 이 조건에서 -500틱이하되서 매수되기 전에 아래 청산 신호발생시 매수 진입 취소 if MarketPosition == 1 then { if CrossDown(value,CCI값) Then ExitLong("CCI청산"); }
프로필 이미지
이형지
2019-12-09
318
글번호 134207
시스템
답변완료

지표 의뢰드려요

안녕하세요! 지난번 교차가격생성은 매매에 잘 활용하고 있습니다. 정말 감사드립니다. 매매를 하면서 또 도움을 받고져 문의드립니다. 옵션의 콜 과 풋 상관없이 임의로 10개의 가격들을 미리 정해놓고 , 콜 또는 풋의 가격이 그 가격들에 도달하면 자동으로 선물가격에 라인이 가로로 생성되는 수식을 만들고 싶습니다. 가능할까요? 선의 색상과 굵기는 제가 정하고 싶습니다 정리하자면 --------------------------------------------------------------------- 1. data2~data11 까지 옵션 콜 5개 가격 과 풋 5개 가격의 교차 챠트를 만들고 미리 정해놓은 가격선에 콜이나 풋이 도달하면 선물가격인 data1에 선이 자동으로 그어지도록 만들고 싶습니다. 미리정해진 옵션 가격선은 옵션교차차트에 선과 가격을 나타나게 하고 싶습니다.선의 색상과 굵기는 제가 선택할 수 있도록 하고 싶습니다. ---------------------------------------------------------------------- 2. data2~data3 / data4~data5 / data6~data7 / data8~data9 / data10~data11 / 콜풋 교챠차트를 각각 5개로 제가 만들고 각각의 교차차트에 미리 정해놓은 가격선에 콜이나 풋이 도달하면 선물가격인 data1에 선이 자동으로 그어지도록 만들고 싶습니다. 미리 정해놓은 옵션 가격선은 옵션교차차트에 선과 가격을 나타나게 하고 싶습니다.선의 색상과 굵기는 제가 선택할 수 있도록 하고 싶습니다. ---------------------------------------------------------------------- 부탁드립니다.
프로필 이미지
qha71
2019-12-09
236
글번호 134206
지표
답변완료

변수 선택

첨부파일은 강제청산 최적화 결과입니다. 0.50이 최고의 결과인데 선택하자니 0.52 부터 상당히 낮아집니다. 일반적인 변수이면 0.48을 선택하는데요. setstoploss로 처리하는 강제손절인 경우는 0.50을 선택해도 되는 것 아닌가 해서요.
프로필 이미지
좌오비우오비
2019-12-06
207
글번호 134203
시스템
답변완료

문의 드립니다

MACD 12 26 9 골든 크로스 상태 이면서 스토케스틱 10 5 5 신호도 같은 골든 크로스 일 때 매수 손절과 익절은 스토케스틱 10 5 5 가 데드 크로스 할 때 한다. MACD 12 26 9 데드 크로스 상태 이면서 스토케스틱 10 5 5 신호도 같은 데드 크로스 일 때 매도 손절과 익절은 스토케스틱 10 5 5 가 골든 크로스 할 때 한다. (MACD와 스토케스틱이 같은 방향 일때 보유하고 아니면 무포지션을 원하는 것입니다.) 부탁드립니다.
프로필 이미지
선물대장
2019-12-06
158
글번호 134196
시스템
답변완료

시스템 문의드립니다.

항상 친철한 도움에 감사드립니다. 다음 내용으로 시스템 문의드립니다. 1. 당일 변동폭을 계산해서 당일폭이 50틱 (변수로 지정) 이 되는 시점을 기준하여 (상승하면서 50틱이 되는 경우) 당일폭 51틱이 되면서 상승방향이면 매수진입, 당일 49틱 가격으로 가면서 하락방향이면 매도진입. 또는 당일폭이 50틱이 되는 시점을 기준하여 (하락하면서 50틱이 되는 경우) 당일폭 51틱이 되면서 하락방향이면 매도진입, 당일 49틱 가격으로 가면서 하락방향이면 매도진입. 당일폭이 51틱에서 다시 49틱가격으로 되면, 청산후 진행방향 진입 당일폭이 49틱에서 51틱 가격으로 되면, 청산후 진행방향으로 진입 (청산 및 재진입 계속반복) 봉완성전에도 진입가능하면, 봉완성전 진입으로 수식부탁드립니다 2. " 당일 변동폭을 계산해서 당일폭이 50틱 (변수로 지정) 이 되는 시점을 기준하여 (상승하면서 50틱이 되는 경우) 당일폭 51틱이 되면서 상승방향이면 매수진입, 당일 49틱 가격으로 가면서 하락방향이면 매도진입. 또는 당일폭이 50틱이 되는 시점을 기준하여 (하락하면서 50틱이 되는 경우) 당일폭 51틱이 되면서 하락방향이면 매도진입, 당일 49틱 가격으로 가면서 하락방향이면 매도진입. " 까지는 1번과 동일 손절기준 5틱을 기준으로 손절되면, 기존포지션 반대방향으로 재진입 이상 2가지 시스템 수식을 부탁드립니다. 감사합니다.
프로필 이미지
팅키
2019-12-06
162
글번호 134195
시스템
답변완료

수식 부탁 드립니다

a=if(predayclose()>predayopen(), (predayhigh()+predaylow()+predayclose()+predayhigh())/2-predaylow(), (if(predayclose()<predayopen(), (predayhigh()+predaylow()+predayclose()+predaylow())/2-predaylow() (predayhigh()+predaylow()+predayclose()+predayclose())/2-predaylow()) ) ); b=if(predayclose()>predayopen(), (predayhigh()+predaylow()+predayclose()+predayhigh())/2-predayhigh(), (if(predayclose()<predayopen(), (predayhigh()+predaylow()+predayclose()+predaylow())/2-predayhigh() (predayhigh()+predaylow()+predayclose()+predayclose())/2-predayhigh()) ) ); (a+b)/2 --------------------------- (predayhigh()+predaylow()+predayclose())/3 지표에 2 라인을 그리고 싶읍니다
프로필 이미지
로빈의맥주
2019-12-06
194
글번호 134193
지표
답변완료

수식

항상 그런 경우가 아닌 하기 조건이 발생시에 필요한 수식 조건입니다. 다시 한번 검토해서 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 > 안녕하세요 예스스탁입니다. if C[1] < O[1] and C > H[1] Then buy(); if C[1] > O[1] and C < L[1] Then sell(); 즐거운 하루되세요 > 한국사람73 님이 쓴 글입니다. > 제목 : 수식 > 항상 감사드립니다. 하기 수식 부탁드립니다. Condition 수식으로 부탁드립니다. * 매수 - 전봉이 음봉일 경우 전봉 고가 이상에서 매수 * 매도 - 전봉이 양봉일 경우 전봉 저가 이하에서 매도 감사합니다.
프로필 이미지
한국사람73
2019-12-06
140
글번호 134191
시스템
답변완료

문의 드립니다

MACD 12 26 9는 기준선 0 위에 있고 스토케스틱 10 5 5는 기준선 50 아래에서 골든 크로스 발생 시 매수 손절은 50틱/ 익절은 50틱 MACD 12 56 9는 기준선 0 아래 있고 스토케스틱 10 5 5는 기준선 50위에서 데드 크로스 발생시 매도 손절은 50틱/ 익절은 50틱 부탁 드립니다. 감사합니다.
프로필 이미지
선물대장
2019-12-06
137
글번호 134187
시스템
답변완료

수식문의드립니다

5일선이 상승전환하는데 이전5일선 상승전환한 위치보다 보다 높은 위치 의 수식을 부탁합니다.(짝궁뎅이) S = sum(1) Ma5 = ma(C,기간); Condition1 = M5 > M5[1] && M5[1] <= M5[2]; 상승1=valueWhen(1,Condition1,S); 상승2=valueWhen(2,Condition1,S); 상승3=valueWhen(3,Condition1,S); 20일 이평이격도도 같이 표현하고 싶습니다. 종목검색외에 강조도 부탁드립니다. 수고하세요
프로필 이미지
송담8016
2019-12-06
173
글번호 134183
종목검색