커뮤니티

수식좀 부탁드립니다.

프로필 이미지
바다선물
2016-06-17 17:56:27
271
글번호 99247
답변완료

첨부 이미지

#==========================================# input:단위호가(3),단기(5),중기(20),시작일(20160101); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),Sum(0),CSum(0), 저항선(0),지지선(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0); array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0),렌코[500](0); #==========================================# #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 고[0] = C; 고Bar[0] = 0; 저[0] = C; 저Bar[0] = 0; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# If 방향 == 0 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } Else If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 하락 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } If 저[0] + 2*벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-저[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[0] = 저[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 상승 Then { If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } If 고[0] - 2*벽돌크기 >= C Then { 벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[0] = 고[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } } If 고[2] > 0 Then 저항선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2]+고[2]; If 저[2] > 0 Then 지지선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2]+저[2]; #==========================================# #==========================================# If 렌코[단기-1] > 0 Then { Sum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j]; } 단기이평 = Sum / 단기; Sum = 0; CSum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j] * (단기 - j); CSum = CSum + (단기 - j); } 단기가중이평 = Sum / CSum; } If 렌코[중기-1] > 0 Then { Sum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j]; } 중기이평 = Sum / 중기; Sum = 0; CSum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j] * (중기 - j); CSum = CSum + (중기 - j); } 중기가중이평 = Sum / CSum; } #==========================================# # 시스템 매매 #==========================================# 위 수식으로 첨부한 그림 처럼 시스템 매매식을 만들려고 하는데요... 청산까지 그리고 청산 하고 나면 다시 진입하는 방식으로 할려고 하는데요... 벽돌로 계산해서 색깔이 파란색 계열일때.. 벽돌이 생기고 다음에 벽돌 아래를 붕괴 할시 매도신호를 넣을려고 합니다. 매수는 반대로 매도시 아래 벽돌 기준선에서 청산이 되게 하면 됩니다. 수식을 좀 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-06-20 09:29:14

안녕하세요 예스스탁입니다. 올리신 그림과 내용만으로는 진입청산의 내용을 판별하기 어렵습니다. 매수/매도 진입과 각 청산의 조건의 내용을 정확히 기술해서 올려주시기 바랍니다. 아래식은 빨간색(렌코[0] > 렌코[1]) 일때 상단을 상향 돌파하면 매수 파란색(렌코[0] < 렌코[1]) 일때 하단을 하향 이탈하면 매도하는 식입니다. 매수청산은 빨간색일때 상단을 하향이탈할때 매도청산은 파란색일때 하단을 하향이탈할때 청산하게 작성했습니다. #==========================================# input:단위호가(3),단기(5),중기(20),시작일(20160101); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),Sum(0),CSum(0), 저항선(0),지지선(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0); array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0),렌코[500](0); #==========================================# #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 고[0] = C; 고Bar[0] = 0; 저[0] = C; 저Bar[0] = 0; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# If 방향 == 0 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } Else If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 하락 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } If 저[0] + 2*벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-저[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[0] = 저[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 상승 Then { If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } If 고[0] - 2*벽돌크기 >= C Then { 벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[0] = 고[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } } If 고[2] > 0 Then 저항선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2]+고[2]; If 저[2] > 0 Then 지지선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2]+저[2]; #==========================================# #==========================================# If 렌코[단기-1] > 0 Then { Sum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j]; } 단기이평 = Sum / 단기; Sum = 0; CSum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j] * (단기 - j); CSum = CSum + (단기 - j); } 단기가중이평 = Sum / CSum; } If 렌코[중기-1] > 0 Then { Sum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j]; } 중기이평 = Sum / 중기; Sum = 0; CSum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j] * (중기 - j); CSum = CSum + (중기 - j); } 중기가중이평 = Sum / CSum; } if 렌코[0] > 렌코[1] and crossup(c,렌코[0]) Then buy(); if MarketPosition == 1 and 렌코[0] > 렌코[1] and CrossDown(c,렌코[0]) Then ExitLong(); if 렌코[0] < 렌코[1] and CrossDown(c,렌코[0]) Then sell(); if MarketPosition == 1 and 렌코[0] < 렌코[1] and CrossUp(c,렌코[0]) Then ExitShort(); 즐거운 하루되세요 > 바다선물 님이 쓴 글입니다. > 제목 : 수식좀 부탁드립니다. > #==========================================# input:단위호가(3),단기(5),중기(20),시작일(20160101); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),Sum(0),CSum(0), 저항선(0),지지선(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0); array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0),렌코[500](0); #==========================================# #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 고[0] = C; 고Bar[0] = 0; 저[0] = C; 저Bar[0] = 0; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# If 방향 == 0 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } Else If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 하락 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } If 저[0] + 2*벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-저[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[0] = 저[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; 방향 = 상승; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } } Else If 방향 == 상승 Then { If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수; 저Bar[j] = 저Bar[j] + 벽돌개수; } 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 고Bar[0] = 0; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 고[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] - 벽돌크기; } } If 고[0] - 2*벽돌크기 >= C Then { 벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9)); For j = 0 To 9 { 고Bar[j] = 고Bar[j] + 벽돌개수 - 1; 저Bar[j] = 저Bar[j] + 벽돌개수 - 1; } For j = 8 DownTo 0 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[0] = 고[0] - (벽돌크기 * 벽돌개수); 저Bar[0] = 0; 방향 = 하락; For j = 499 DownTo 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } 렌코[0] = 저[0]; For j = 1 To 벽돌개수-1 { 렌코[j] = 렌코[j-1] + 벽돌크기; } } } If 고[2] > 0 Then 저항선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2]+고[2]; If 저[2] > 0 Then 지지선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2]+저[2]; #==========================================# #==========================================# If 렌코[단기-1] > 0 Then { Sum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j]; } 단기이평 = Sum / 단기; Sum = 0; CSum = 0; For j = 0 To (단기-1) { Sum = Sum + 렌코[j] * (단기 - j); CSum = CSum + (단기 - j); } 단기가중이평 = Sum / CSum; } If 렌코[중기-1] > 0 Then { Sum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j]; } 중기이평 = Sum / 중기; Sum = 0; CSum = 0; For j = 0 To (중기-1) { Sum = Sum + 렌코[j] * (중기 - j); CSum = CSum + (중기 - j); } 중기가중이평 = Sum / CSum; } #==========================================# # 시스템 매매 #==========================================# 위 수식으로 첨부한 그림 처럼 시스템 매매식을 만들려고 하는데요... 청산까지 그리고 청산 하고 나면 다시 진입하는 방식으로 할려고 하는데요... 벽돌로 계산해서 색깔이 파란색 계열일때.. 벽돌이 생기고 다음에 벽돌 아래를 붕괴 할시 매도신호를 넣을려고 합니다. 매수는 반대로 매도시 아래 벽돌 기준선에서 청산이 되게 하면 됩니다. 수식을 좀 부탁드립니다.