커뮤니티
질문있습니다
2010-11-18 13:27:56
640
글번호 33715
항상 수고가 만땅이십니당~^^
당일매매에서 손절후 한번이나 두번의 매매를 건너뛰려합니다
예를 들어 이평서매매이면 (5.20) stoploss(0.5) 스탑로스후
매수였으면 매도를 건너뛰고 매수진입 (crossdown건너뛰고그다음crossup에진입)이랑
매수였으면 두번건너뛰고 매도신호나왔을때 진입 (cross 두번이후 매도진입)
의 식을 나눠서 부탁드립니다
답변 1
예스스탁 예스스탁 답변
2010-11-18 15:49:48
안녕하세요
예스스탁입니다.
Input : shortPeriod(5), longPeriod(20);
var : cnt(0),count(0);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
count = 0;
for cnt = 0 to 20{
if sDate == EntryDate(cnt) Then
count = count+1;
}
if count == 0 Then{#당일 첫진입
If CrossUP(value1, value2) Then
{
Buy("buy1");
}
If CrossDown(value1, value2) Then
{
Sell("sell1");
}
}
if count > 0 Then{#당일 첫진입 이후
#손절상황이 아니면 이평 골든데드로 기존과 같이 진입청산
If MarketPosition == -1 and CrossUP(value1, value2) Then
{
Buy("buy2");
}
If MarketPosition == 1 and CrossDown(value1, value2) Then
{
Sell("sell2");
}
# 무포지션 상태일때
#case1 #무포지션이지만 직전청산이 손절이 아닌경우
if MarketPosition == 0 and IsExitName("StopLoss",1) == False Then{
If CrossUP(value1, value2) Then
{
Buy("buy3");
}
If CrossDown(value1, value2) Then
{
Sell("sell3");
}
}
#case2 #무포지션이고 직전청산이 손절인 경우
if MarketPosition == 0 and IsExitName("StopLoss",1) == true Then{
If MarketPosition(1) == 1 and countif(CrossDown(value1,value2),BarsSinceExit(1)) >= 1 And CrossUP(value1, value2) Then
{ # 직전포지션이 매수라면 크로스다운 1회이후 크로스업일경우 매수
Buy("buy4");
}
If MarketPosition(1) == 1 and CrossDown(value1, value2) and countif(CrossDown(value1, value2),BarsSinceExit(1)) == 2 Then
{#직전포지션이 매수라면 크로스다운이 2회 발생일때 매도(교차이므로 크로스 다운 사이에 크로스업은 따로 언급이 없어도 됩니다.)
Sell("sell4");
}
}
}
SetStopLoss(0.5,PointStop);
즐거운 하루되세요
> 모모아찌 님이 쓴 글입니다.
> 제목 : 질문있습니다
>
항상 수고가 만땅이십니당~^^
당일매매에서 손절후 한번이나 두번의 매매를 건너뛰려합니다
예를 들어 이평서매매이면 (5.20) stoploss(0.5) 스탑로스후
매수였으면 매도를 건너뛰고 매수진입 (crossdown건너뛰고그다음crossup에진입)이랑
매수였으면 두번건너뛰고 매도신호나왔을때 진입 (cross 두번이후 매도진입)
의 식을 나눠서 부탁드립니다
다음글
이전글