커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의 드립니다.

국내 선물에서 호가잔량 이평 오실레이터에서 0선을 기준으로 0선 아래서 위로 돌파하는 경우와 0선 위에서 하락 진행하다 상승전환 할 때 매수 진입 청산은 하락 전환 할 때 매도 청산완료 0선 위에서 아래로 돌파하는 경우와 0선 아래에서 상승 진행하다 하락전환 할 때 매도 진입 청산은 상승 전환 할 때 매수 청산완료 부탁드립니다.
프로필 이미지
선물대장
2023-08-09
900
글번호 171352
시스템
답변완료

문의 드립니다

input:p1(48),Rsi변동폭(20); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),RsiV(0),Rsi추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); RsiV =RSI(P1); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RsiV[1] && Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RsiV[1] && Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RsiV[1] && Rsi고[0][1] - Rsi변동폭 > RsiV Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RsiV[1] && Rsi저[0][1] + Rsi변동폭 < RsiV Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } If Rsi파동선[1] != Rsi파동선 Then{ if 방향 == 하락 and Rsi파동선 >= 65 then sell(); if 방향 == 상승 and Rsi파동선 <= 35 then buy(); } ----- 위 수식어를 해외선물에 자동주문설정으로 테스트 하고 있습니다. 전입과 청산 될시 그 다음날의 수량은 있어야 하는데 그렇지 않은 경우는 수식어에서 변경하는 방법이 있는지 궁금합니다. 미리 감사드립니다.
프로필 이미지
푸른
2023-08-09
1469
글번호 171349
시스템
답변완료

안녕하세요

안녕하세요 선물수식 1, 양봉이며 양봉의 시가보다 0.3P 크면 매수 음봉이며 음봉의 시가보다 0.3P 작으면 매도 2, 양선 3개면 매수 음선 3개면 매도 감사합니다
프로필 이미지
금보
2023-08-09
930
글번호 171342
시스템

수서동ㅇ병아리 님에 의해서 삭제되었습니다.

프로필 이미지
수서동ㅇ병아리
2023-08-09
8
글번호 171341
시스템
답변완료

수식 작성 요청

안녕하세요 제공된 일목균형(ver.2) 수식을 사용함에 있어, 진입신호가 연속적(청산+진입)으로 이루어지니 포지션이 없을때 거래수량의 2배가 진입됩니다. (예) 동일수량 진입 : 1개 - case1. 포지션 없는경우 : 매수(매도)신호 발생시 2계약 진입됨 -> 추후 매도(매수)신호 발생시 2계약 청산 후 매도(매수)진입 안함 (비정상) - case2. 포지션(매수) 있는경우 : 매도신호 발생시 1계약 청산후 매도진입함 (정상) (요청사항) 포지션이 없는 경우, 설정된 수량만큼만 진입하게 하는 수식을 추가 할수 있을까요? 감사합니다.
프로필 이미지
minve
2023-08-08
833
글번호 171340
사용자 함수
답변완료

if 조건문 여러개를 for문으로 줄일 수 있나요?

아래와 같은 코드를 짰는데요. input : ntime(210000), line_num(5), size_tick(8); var : Tcond(False), oo(0), k(0); array : up_line[20](0), dn_line[20](0), uptext[20](0), dntext[20](0); array : up_touch[20](0), dn_touch[20](0), up_T[20](0), dn_T[20](0), up_TL[50](0), dn_TL[50](0); if Bdate != Bdate[1] Then Tcond = False; if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { oo = o; For k = 1 to line_num { up_T[k] = 0; dn_T[k] = 0; up_line[k] = oo + PriceScale*size_tick*k; dn_line[k] = oo - PriceScale*size_tick*k; up_touch[k] = 0; dn_touch[k] = 0; up_TL[k] = TL_New(sDate,sTime,up_line[k],NextBarSdate,NextBarStime,up_line[k]); // 선긋기 dn_TL[k] = TL_New(sDate,sTime,dn_line[k],NextBarSdate,NextBarStime,dn_line[k]); // 선긋기 } if H >= up_line[1] Then { up_T[1] = 1; up_touch[1] = up_touch[1] + 1; } if H >= up_line[2] Then { up_T[2] = 2; up_touch[2] = up_touch[2] + 1; } if H >= up_line[3] Then { up_T[3] = 3; up_touch[3] = up_touch[3] + 1; } if H >= up_line[4] Then { up_T[4] = 4; up_touch[4] = up_touch[4] + 1; } For k = 1 to line_num { uptext[k] = Text_New(NextBarSdate,NextBarStime,up_line[k],NumToStr(up_touch[k],0)); dntext[k] = Text_New(NextBarSdate,NextBarStime,dn_line[k],NumToStr(dn_touch[k],0)); } } ------------------------------------------------------------------ 이 코드를 실행하면 첨부파일1의 이미지와 같이 숫자가 표시 되는데요. 이것을 아래와 같이 if문들이 반복되어 for 문으로 바꿔봤는데요. 실행 결과가 다르게 나오는데요. 어디가 잘못됐는지 잘 모르겠습니다.. 도움 부탁드립니다. input : ntime(210900), line_num(4), size_tick(8); var : Tcond(False), oo(0), k(0); array : up_line[20](0), dn_line[20](0), uptext[20](0), dntext[20](0); array : up_touch[20](0), dn_touch[20](0), up_T[20](0), dn_T[20](0), up_TL[50](0), dn_TL[50](0); if Bdate != Bdate[1] Then Tcond = False; if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { oo = o; For k = 1 to line_num { up_T[k] = 0; dn_T[k] = 0; up_line[k] = oo + PriceScale*size_tick*k; dn_line[k] = oo - PriceScale*size_tick*k; up_touch[k] = 0; dn_touch[k] = 0; up_TL[k] = TL_New(sDate,sTime,up_line[k],NextBarSdate,NextBarStime,up_line[k]); // 선긋기 dn_TL[k] = TL_New(sDate,sTime,dn_line[k],NextBarSdate,NextBarStime,dn_line[k]); // 선긋기 } For k = 1 to line_num { if H >= up_line[k] Then //CrossUp(h,uptt[1]) //H >= uptt[1] { up_T[k] = k; up_touch[k] = up_touch[k] + 1; } } For k = 1 to line_num { uptext[k] = Text_New(NextBarSdate,NextBarStime,up_line[k],NumToStr(up_touch[k],0)); dntext[k] = Text_New(NextBarSdate,NextBarStime,dn_line[k],NumToStr(dn_touch[k],0)); } }
프로필 이미지
예스쟁이
2023-08-08
900
글번호 171339
지표
답변완료

부탁드립니다

1. 기본차트 콜의 당일 시가와 보조차트 풋의 당일 시가 중간값을 지표 선으로 구하고자 요청 합니다. 왠지 전에 만들어 주신 자료로는 중간값이 아닌 2개 시가의 상단에 표시되고 있어서 다시 한번 부탁드립니다. 2. 당일 풋이 콜보다 고가에서 장이 시작된 후 풋의 최저가가 콜의 최고가와 16틱이내로 접어들면 그때부터 기본차트에 파란색으로 구현해 주세요 3. 당일 풋이 콜보다 저가에서 장이 시작된 후 풋의 최고가가 콜의 최저가와 8틱 이내로 접어 들면 그때부터 기본차트에 빨강색으로 구현해 주세요 4. 보조 풋이 1.8 이상이면 기본 콜차트에 빨강색으로, 그 이하이면 파란색으로 구현해 주세요 5. 당일 콜이든 풋이든 최고가봉 최저가봉이 서로 겹칠 때마다 기본차트 해당봉에 빨강색으로 구현해 주세요 6. 당일 풋의 현재가가 콜의 최고가보다 더 높은 가격에 올라 있다가 콜의 최고가보다 낮아지면 빨강색으로, 당일 풋의 현재가가 콜의 최저가보다 더 높은 가격에 있다가 콜의 최저가보다 더 낮아지면 파란색으로 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2023-08-09
901
글번호 171338
지표

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-08-08
64
글번호 171337
지표
답변완료

이 수식을 키움 수식으로도 변경해주실수 있나요?

// 항셍 방향타 매매 var : i(0), j(0); // 임시변수 var : intMx(22035), intDt(100); // var : intOneTick(1); array : int35L[200](0); // 35선을 저장하는 배열 array : intUp[10](0), intDown[10](0.0); for i = 0 to 180 { int35L[i] = intMx - i * intDt; } For j = 0 to 180 { // 상승방향타 Condition10 = (L == int35L[j]); condition12 = (O - C) < 0; // 양봉 condition13 = (O - L) >= 2 * intOnetick; condition14 = (O - C) >= 0; // 음봉 condition15 = (C - L) >= 2 * intOnetick; // 하락방향타 Condition20 = (H == int35L[j]); condition22 = (O - C) < 0; // 양봉 condition23 = (H - C) >= 2 * intOnetick; condition24 = (O - C) >= 0; // 음봉 condition25 = (H - O) >= 2 * intOnetick; // MessageLog("j: %.0f int8535L[%.0f]: %.2f ",j,j, int8535L[j]); if condition10 Then { if (condition12 and condition13) or (condition14 and condition15) Then { Plot1(int35L[j], "Down-rudder",Magenta,1,2); } } if condition20 Then { if (condition22 and condition23) or (condition24 and Condition25) Then { Plot3(int35L[j], "Up-rudder",Blue,1,2); } } }
프로필 이미지
쫑혀니
2023-08-08
905
글번호 171336
검색
답변완료

macd oscillator 사용자함수 부탁드립니다.

안녕하세요.. MACD Oscillator (12,26,9)의 경우 12가격이동평균, 26가격이동평균, (12가격이평-26가격이평)의 9이동평균을 의미하는데요.. 가격 이평 이대신에 선물 전체 호가 매수/매도주문수량의 이동평균값으로 지표를 만들고 싶어요... 즉.... 12가격이동평균 자리는 선물전체호가매수주문수량의 12단순이동평균 으로 26가격이동평균 자리는 선물전체호가매도주문수량의 12단순이동평균 으로 (12가격이평-26가격이평)의 9이동평균자리는 (선물전체호가매수주문수량 12단순이동평균 -선물전체호가매도주문수량 12단순이동평균)의 9단순이동평균값 으로 대체하여 MACD OSCillator 지표를 작성할려고 하는데 어떡하면 될까요? 부탁드립니다.. 감사합니다.
프로필 이미지
랑랑
2023-08-08
723
글번호 171335
지표