커뮤니티
수식 부탁( mfi 매매)
2019-01-17 11:11:37
144
글번호 125360
조건1: 일봉기준: 1>10일때 매수 진입
조건2: 일봉기준 20일평균값이 우상향일때 매수진입
조건3: mfi(4) LPERCENT(30)이하일때 매수 진입
이세조건의 교집합시 매수 진입
아래식을 적용해보니 아무런 매수신호가 안뜨네요... 뭐가 잘못되었는지 알려주시면 감사
참고로 해외선물 30분봉입니다.
==================================================================================
Input : Period(40), LPercent(30), SPercent(100);
Input : P1(50),P2(165);
Input : N1(1),N2(10),N3(20);
Var : value(0);
var : BEH(0),BEL(0),SEH(0),SEL(0);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0);
var : sum3(0),Tcond(false);
var : sum4(0),sum41(0),avg4(0),avg41(0);
value = MFI(Period);
if DayClose(max(N1,N2,N3)) > 0 Then
{
sum1 = 0;
sum2 = 0;
sum4 = 0;
sum41 = 0;
for cnt = 0 to max(N1,N2,N3)-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
if cnt < N3 Then
{
sum4 = sum4 + DayClose(cnt);
sum41 = sum41 + DayClose(cnt+1);
}
}
avg1 = sum1/N1;
avg2 = sum2/N2;
avg4 = sum3/N3;
avg41 = sum41/N3;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
# 매수/매도청산
If value <= LPercent and MarketPosition == 0 and avg4 > avg41 Then
{
Buy("매수");
}
if MarketPosition == 1 then
{
ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*P1);
ExitLong("즉시손절",AtStop,EntryPrice-PriceScale*P2);
}
}
답변 1
예스스탁 예스스탁 답변
2019-01-17 14:59:07
안녕하세요
예스스탁입니다.
변수가 잘못지정되어 있어 수정했습니다.
Input : Period(40), LPercent(30), SPercent(100);
Input : P1(50),P2(165);
Input : N1(1),N2(10),N3(20);
Var : value(0);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0);
var : sum4(0),sum41(0),avg4(0),avg41(0);
value = MFI(Period);
if DayClose(max(N1,N2,N3)) > 0 Then
{
sum1 = 0;
sum2 = 0;
sum4 = 0;
sum41 = 0;
for cnt = 0 to max(N1,N2,N3)-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
if cnt < N3 Then
{
sum4 = sum4 + DayClose(cnt);
sum41 = sum41 + DayClose(cnt+1);
}
}
avg1 = sum1/N1;
avg2 = sum2/N2;
avg4 = sum4/N3;
avg41 = sum41/N3;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
# 매수/매도청산
If value <= LPercent and MarketPosition == 0 and avg4 > avg41 Then
{
Buy("매수");
}
if MarketPosition == 1 then
{
ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*P1);
ExitLong("즉시손절",AtStop,EntryPrice-PriceScale*P2);
}
}
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 수식 부탁( mfi 매매)
>
조건1: 일봉기준: 1>10일때 매수 진입
조건2: 일봉기준 20일평균값이 우상향일때 매수진입
조건3: mfi(4) LPERCENT(30)이하일때 매수 진입
이세조건의 교집합시 매수 진입
아래식을 적용해보니 아무런 매수신호가 안뜨네요... 뭐가 잘못되었는지 알려주시면 감사
참고로 해외선물 30분봉입니다.
==================================================================================
Input : Period(40), LPercent(30), SPercent(100);
Input : P1(50),P2(165);
Input : N1(1),N2(10),N3(20);
Var : value(0);
var : BEH(0),BEL(0),SEH(0),SEL(0);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0);
var : sum3(0),Tcond(false);
var : sum4(0),sum41(0),avg4(0),avg41(0);
value = MFI(Period);
if DayClose(max(N1,N2,N3)) > 0 Then
{
sum1 = 0;
sum2 = 0;
sum4 = 0;
sum41 = 0;
for cnt = 0 to max(N1,N2,N3)-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
if cnt < N3 Then
{
sum4 = sum4 + DayClose(cnt);
sum41 = sum41 + DayClose(cnt+1);
}
}
avg1 = sum1/N1;
avg2 = sum2/N2;
avg4 = sum3/N3;
avg41 = sum41/N3;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
# 매수/매도청산
If value <= LPercent and MarketPosition == 0 and avg4 > avg41 Then
{
Buy("매수");
}
if MarketPosition == 1 then
{
ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*P1);
ExitLong("즉시손절",AtStop,EntryPrice-PriceScale*P2);
}
}
다음글