커뮤니티

시스템

프로필 이미지
유인력11
2019-02-08 19:13:56
178
글번호 125986
답변완료
안녕하세요 새해복많이받으세요 예스함수로렌코차트을 함수식으로 구현되는걸로 알고있습니다 아래식에서 DMI관련식을 제외한 렌코와 파라만 함수식을 수정부탁드립니디 input:renkoSize(0.2), //렌코 크기 af(0.02), maxAF(0.2), Period(14); var:j(0),k(0),renkoCnt(0),gubun(0), printOK(false), //데이터 출력/미출력(True/False) filename("renko.txt"), //데이터 출력 생성 위치(C:₩예스트레이더₩YesLang₩) value(0); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),gubunSave[5](0); If DayIndex == 0 Then { //break on session에 일자 계산 초기화 gubun = 0; //렌코 방향 초기화 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않으면 If OO[0] - renkoSize >= C Then { //상방향 렌코인지 확인 gubun = -1; //상방향 결정 CC[0] = OO[0] - renkoSize; HH[0] = OO[0]; LL[0] = CC[0]; j = 0; //마지막 1봉만 출력 if printOK then print(filename,"1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { //하방향 렌코인지 확인 gubun = 1; //하방향 결정 CC[0] = OO[0] + renkoSize; HH[0] = CC[0]; LL[0] = OO[0]; j = 0; if printOK then print(filename,"2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { //아래 방향으로 렌코 형성 gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); //추가될 렌코 개수 if renkoCnt > 49 then renkoCnt = 49; //오류방지를 위한 방어코드 For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; if printOK then print(filename,"3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If HH[0] + renkoSize <= C Then { //위 방향으로 렌코 형성 gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; if printOK then print(filename,"4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If Time >= 151500 Then { //당일 종가봉에서, For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; } j = 0; //마지막 1봉만 출력 if printOK then print(filename,"5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } //If OO[0] > 0 Then Plot1(OO[0],"OO"); //If CC[0] > 0 Then Plot2(CC[0],"CC"); for j= 4 downTo 1{ gubunSave[j] = gubunSave[j-1]; } gubunSave[0] = gubun; value = sar(af,maxAF); value1 = DIPlus(Period); value2 = DIMinus(Period); # 매수/매도청산 If CrossUP(value1, value2) and (C > value) and (/*(gubunSave[2] = -1) and (gubunSave[1] = 1) and*/ (gubun = 1) or ((gubun = -1) and (gubunSave[1] = 1))) Then { buy(); } # 매도/매수청산 If CrossDown(value1, value2) and (C < value) and (/*(gubunSave[2] = 1) and (gubunSave[1] = -1) and*/ (gubun = -1) or ((gubun = 1) and (gubunSave[1] = -1))) Then { Sell(); } 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-02-11 11:16:56

안녕하세요 예스스탁입니다. input:renkoSize(0.2), //렌코 크기 af(0.02), maxAF(0.2), Period(14); var:j(0),k(0),renkoCnt(0),gubun(0), printOK(false), //데이터 출력/미출력(True/False) filename("renko.txt"), //데이터 출력 생성 위치(C:₩예스트레이더₩YesLang₩) value(0); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),gubunSave[5](0); If DayIndex == 0 Then { //break on session에 일자 계산 초기화 gubun = 0; //렌코 방향 초기화 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않으면 If OO[0] - renkoSize >= C Then { //상방향 렌코인지 확인 gubun = -1; //상방향 결정 CC[0] = OO[0] - renkoSize; HH[0] = OO[0]; LL[0] = CC[0]; j = 0; //마지막 1봉만 출력 if printOK then print(filename,"1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { //하방향 렌코인지 확인 gubun = 1; //하방향 결정 CC[0] = OO[0] + renkoSize; HH[0] = CC[0]; LL[0] = OO[0]; j = 0; if printOK then print(filename,"2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { //아래 방향으로 렌코 형성 gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); //추가될 렌코 개수 if renkoCnt > 49 then renkoCnt = 49; //오류방지를 위한 방어코드 For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; if printOK then print(filename,"3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If HH[0] + renkoSize <= C Then { //위 방향으로 렌코 형성 gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; if printOK then print(filename,"4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If Time >= 151500 Then { //당일 종가봉에서, For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; } j = 0; //마지막 1봉만 출력 if printOK then print(filename,"5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } //If OO[0] > 0 Then Plot1(OO[0],"OO"); //If CC[0] > 0 Then Plot2(CC[0],"CC"); for j= 4 downTo 1{ gubunSave[j] = gubunSave[j-1]; } gubunSave[0] = gubun; value = sar(af,maxAF); # 매수/매도청산 If crossup(c,value) and (/*(gubunSave[2] = -1) and (gubunSave[1] = 1) and*/ (gubun == 1) or ((gubun == -1) and (gubunSave[1] == 1))) Then { buy(); } # 매도/매수청산 If CrossDown(c,value) and (/*(gubunSave[2] = 1) and (gubunSave[1] = -1) and*/ (gubun == -1) or ((gubun == 1) and (gubunSave[1] == -1))) Then { Sell(); } 즐거운 하루되세요 > 유인력11 님이 쓴 글입니다. > 제목 : 시스템 > 안녕하세요 새해복많이받으세요 예스함수로렌코차트을 함수식으로 구현되는걸로 알고있습니다 아래식에서 DMI관련식을 제외한 렌코와 파라만 함수식을 수정부탁드립니디 input:renkoSize(0.2), //렌코 크기 af(0.02), maxAF(0.2), Period(14); var:j(0),k(0),renkoCnt(0),gubun(0), printOK(false), //데이터 출력/미출력(True/False) filename("renko.txt"), //데이터 출력 생성 위치(C:₩예스트레이더₩YesLang₩) value(0); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),gubunSave[5](0); If DayIndex == 0 Then { //break on session에 일자 계산 초기화 gubun = 0; //렌코 방향 초기화 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않으면 If OO[0] - renkoSize >= C Then { //상방향 렌코인지 확인 gubun = -1; //상방향 결정 CC[0] = OO[0] - renkoSize; HH[0] = OO[0]; LL[0] = CC[0]; j = 0; //마지막 1봉만 출력 if printOK then print(filename,"1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { //하방향 렌코인지 확인 gubun = 1; //하방향 결정 CC[0] = OO[0] + renkoSize; HH[0] = CC[0]; LL[0] = OO[0]; j = 0; if printOK then print(filename,"2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { //아래 방향으로 렌코 형성 gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); //추가될 렌코 개수 if renkoCnt > 49 then renkoCnt = 49; //오류방지를 위한 방어코드 For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; if printOK then print(filename,"3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If HH[0] + renkoSize <= C Then { //위 방향으로 렌코 형성 gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; if printOK then print(filename,"4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력 } } Else If Time >= 151500 Then { //당일 종가봉에서, For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; } j = 0; //마지막 1봉만 출력 if printOK then print(filename,"5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } //If OO[0] > 0 Then Plot1(OO[0],"OO"); //If CC[0] > 0 Then Plot2(CC[0],"CC"); for j= 4 downTo 1{ gubunSave[j] = gubunSave[j-1]; } gubunSave[0] = gubun; value = sar(af,maxAF); value1 = DIPlus(Period); value2 = DIMinus(Period); # 매수/매도청산 If CrossUP(value1, value2) and (C > value) and (/*(gubunSave[2] = -1) and (gubunSave[1] = 1) and*/ (gubun = 1) or ((gubun = -1) and (gubunSave[1] = 1))) Then { buy(); } # 매도/매수청산 If CrossDown(value1, value2) and (C < value) and (/*(gubunSave[2] = 1) and (gubunSave[1] = -1) and*/ (gubun = -1) or ((gubun = 1) and (gubunSave[1] = -1))) Then { Sell(); } 감사합니다