커뮤니티
안녕하세요.. 시스템작성에 관해 문의 드립니다
2010-04-19 15:59:36
692
글번호 29440
피라미딩이 포함된 식을 짜봤는데..
최대 2 step 까지만 피라미딩을 원해서 제약조건을 걸었는데요
제가 건 제약과 관계없이 계속 매수가 일어나네요 ㅠㅠ
어디가 틀렸는지 모르겠는데 좀 봐주시면 감사하겠습니다
각각의 변수는 전부 지정했고요...
maxstp은 input 값으로 3으로 정했습니다. (input: maxstp(3);)
한번 피라미딩이 될때마다 stp = stp + 1 이 되도록 해서
stp < maxstp 조건에 걸려서 더이상 피라미딩이 안되도록 했는데요...
제가 원하는 바와 다르게 계속해서 신호뜰때마다 매수가 되네요 ㅠㅠ
어디가 틀렸는지 봐주시면 감사하겠습니다 (--)(__)
// 변수지정
NN = ATR(20);
MaAvg = Ma(Close, 20);
Unit = 1;
//조건
UpTrend = MaAvg > MaAvg[1] and Close > MaAvg;
if 30 <= PR and PR <= 70 Then
OverL = False;
if PR > 70 Then
{for ii = 1 to midlen
{if pr[ii] <= 70 then
OverL = True;
Else
overL = False;
}
}
// 포지션 구축
If UpTrend == True and OverL == True and marketposition ==0 Then
{Buy("L", AtStop, highest(Close, MAlen), Unit);
stp = 1;}
// 피라미딩
If MarketPosition == 1 and stp < maxstp Then
{if NN <= alpha Then
{buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit);
stp = stp + 1;}
}
답변 1
예스스탁 예스스탁 답변
2010-04-20 14:18:20
안녕하세요
예스스탁입니다.
최대 두번까지 진입하기 위해서는 stp < 2가 되야 합니다.
첫진입 들어가기전에는
stp == 0
첫진입 이후
stp == 1
두번째가 들어갈때는 stp == 1
이므로 stp는 2보다 작다고 하셔야 합니다.
참고로 아래와 같이 작성하셔도 됩니다.
// 피라미딩
If MarketPosition == 1 and CurrentEntries < 2 Then
{if NN <= alpha Then
{buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit);
stp = stp + 1;}
}
즐거운 하루되세요
> 구구주녀 님이 쓴 글입니다.
> 제목 : 안녕하세요.. 시스템작성에 관해 문의 드립니다
> 피라미딩이 포함된 식을 짜봤는데..
최대 2 step 까지만 피라미딩을 원해서 제약조건을 걸었는데요
제가 건 제약과 관계없이 계속 매수가 일어나네요 ㅠㅠ
어디가 틀렸는지 모르겠는데 좀 봐주시면 감사하겠습니다
각각의 변수는 전부 지정했고요...
maxstp은 input 값으로 3으로 정했습니다. (input: maxstp(3);)
한번 피라미딩이 될때마다 stp = stp + 1 이 되도록 해서
stp < maxstp 조건에 걸려서 더이상 피라미딩이 안되도록 했는데요...
제가 원하는 바와 다르게 계속해서 신호뜰때마다 매수가 되네요 ㅠㅠ
어디가 틀렸는지 봐주시면 감사하겠습니다 (--)(__)
// 변수지정
NN = ATR(20);
MaAvg = Ma(Close, 20);
Unit = 1;
//조건
UpTrend = MaAvg > MaAvg[1] and Close > MaAvg;
if 30 <= PR and PR <= 70 Then
OverL = False;
if PR > 70 Then
{for ii = 1 to midlen
{if pr[ii] <= 70 then
OverL = True;
Else
overL = False;
}
}
// 포지션 구축
If UpTrend == True and OverL == True and marketposition ==0 Then
{Buy("L", AtStop, highest(Close, MAlen), Unit);
stp = 1;}
// 피라미딩
If MarketPosition == 1 and stp < maxstp Then
{if NN <= alpha Then
{buy("bp", atstop, EntryPrice + NN[BarsSinceEntry] * CurrentEntries, Unit);
stp = stp + 1;}
}
다음글
이전글