앞전에 문의했었는데 실제 적용해보니 첫 거래 이후 그다음은 거래가 되지 않습니다.
현재봉 포함을 빠뜨려서 그런듯도 합니다.
다시 한번 부탁드릴 내용을 정리하자면
"현재봉 포함하여" 직전 20봉 동안에 "가장 거래량이 많이 터진 봉"의 고가와 저가 중간값을 기준으로 그 아래에 있을때는 매수조건이 만족해도 매수신호가 안나오게 하고 싶습니다. 매도는 그 반대입니다.
input : N(20);
var : Hv(0),cnt(0),HVM(0);
Input : Period1(5), Period2(20);
var1 = ma(C,Period1);
var2 = ma(C,Period2);
HV = 0;
HVM = 0;
For cnt = 1 to N
{
if HV == 0 or (HV > 0 and V[cnt] > HV) Then
{
HV = V[cnt];
HVM = (H[cnt]-L[cnt])/2;
}
}
if HV > 0 and C >= HVM and var1 > Var2 Then
buy();
if HV > 0 and C <= HVM and var1 < Var2 Then
Sell();
수식 확인 부탁드립니다.
※ 시간이 되신다면 위의 매매신호가 안나오게하는 것외에 매수진입후 위의 진입제한 기준값인 고저 중간값 아래로 가면 즉시 청산되게 하는 청산식도 부탁드립니다.
노고에 늘 감사드립니다!
답변 1
예스스탁
예스스탁 답변
2022-12-26 15:43:02
안녕하세요
예스스탁입니다.
HVM의 계산값이 잘못되어 있었습니다.
아래는 수정한 식입니다.
청산식도 추가해 드립니다.
input : N(20);
Input : Period1(5), Period2(20);
var : Hv(0),cnt(0),HVM(0);
var1 = ma(C,Period1);
var2 = ma(C,Period2);
HV = 0;
HVM = 0;
For cnt = 1 to N
{
if HV == 0 or (HV > 0 and V[cnt] > HV) Then
{
HV = V[cnt];
HVM = (H[cnt]+L[cnt])/2;
}
}
if HV > 0 and C >= HVM and var1 > Var2 Then
buy();
if HV > 0 and C <= HVM and var1 < Var2 Then
Sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,HVM);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,HVM);
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 앞전에 문의했었는데 실제 적용해보니 첫 거래 이후 그다음은 거래가 되지 않습니다.
현재봉 포함을 빠뜨려서 그런듯도 합니다.
다시 한번 부탁드릴 내용을 정리하자면
"현재봉 포함하여" 직전 20봉 동안에 "가장 거래량이 많이 터진 봉"의 고가와 저가 중간값을 기준으로 그 아래에 있을때는 매수조건이 만족해도 매수신호가 안나오게 하고 싶습니다. 매도는 그 반대입니다.
input : N(20);
var : Hv(0),cnt(0),HVM(0);
Input : Period1(5), Period2(20);
var1 = ma(C,Period1);
var2 = ma(C,Period2);
HV = 0;
HVM = 0;
For cnt = 1 to N
{
if HV == 0 or (HV > 0 and V[cnt] > HV) Then
{
HV = V[cnt];
HVM = (H[cnt]-L[cnt])/2;
}
}
if HV > 0 and C >= HVM and var1 > Var2 Then
buy();
if HV > 0 and C <= HVM and var1 < Var2 Then
Sell();
수식 확인 부탁드립니다.
※ 시간이 되신다면 위의 매매신호가 안나오게하는 것외에 매수진입후 위의 진입제한 기준값인 고저 중간값 아래로 가면 즉시 청산되게 하는 청산식도 부탁드립니다.
노고에 늘 감사드립니다!