커뮤니티
조건식 검토 부탁드립니다.
2014-02-21 14:49:14
195
글번호 72797
안녕하세요.
아래조건대로 시스템식 만들려고 하는데요.
적용해보니 에러가 나고 이해가 안되는 부분이 있습니다.
#===== 설명 부탁(아래 내용 이해 불가) ==# 부터
설명좀 부탁드립니다.
좋은하루 되세요.
감사합니다.
------------------
조 건 계 산 식
-------------------
금일 시가>전일 종가
-------------------
목표 고가=(전일고가+전일종가+2*전일저가)/2-전일저가
목표 저가=(전일고가+전일종가+2*전일저가)/2-전일고가
금일 시가<전일 종가
-------------------
목표 고가=(2*전일고가+전일종가+전일저가)/2-전일저가
목표 저가=(2*전일고가+전일종가+2*전일저가)/2-전일고가
금일 시가=전일 종가
--------------------
목표 고가=(전일고가+2*전일종가+전일저가)/2-전일저가
목표 저가=(전일고가+2*전일종가+전일저가)/2-전일고가
======================================================
시가에 디마크 목표 고가와 목표 저가의 폭의 일정 비율을
가감해서 돌파 전략으로 사용한다.
======================================================
Input: len(2.7), len1(0.37);
var : var1(0), var2(0), var3(0), cond1(false),cond2(false);
If open > close[1] Then {
{
Var1 = (high[1] + close[1] + 2 * low[1]) / 2 - low[1];
Var2 = (high[1] + close[1] + 2 * low[1]) / 2 - high[1];
}
Else if open < close[1] Then
{
Var1 = (2 * high[1] + close[1] + low[1]) / 2 - low[1];
Var2 = (2 * high[1] + close[1] + low[1]) / 2 - high[1];
}
Else
{
Var1 = (high[1] + 2 * close[1] + low[1]) / 2 - low[1];
Var2 = (high[1] + 2 * close[1] + low[1]) / 2 - high[1];
}
}
Var3 = (Var1 - var2);
#===== 설명 부탁(아래 내용 이해 불가) ==#
Cond1 = tdate = exitdate(1) And position(1) = 1;
Cond2 = tdate = exitdate(1) And position(1) = -1;
If stime < 150000 Then {
If Cond1 == False Then {
buy("매수1", Atstop, Def, open + var3 * len1);
}
}
If Cond2 = False Then {
sell("매도1", Atstop, Def, open - var3 * len1);
}
If position <> 0 Then
{
exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry + 1) - atr(20) * len);
exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry + 1) + atr(20) * len);
}
답변 1
예스스탁 예스스탁 답변
2014-02-21 15:39:30
안녕하세요
예스스탁입니다.
올려주신식은 예스랭귀지식이 아닙니다.
예스랭귀지 문법과 함수로 변경하고 주석 달아드립니다.
#당일 발생한 거래중 최근 거래가 매수포지션이면 cond1은 true 아니면 false
Cond1 = sdate == exitdate(1) And MarketPosition(1) == 1;
#당일 발생한 거래중 최근 거래가 매도포지션이면 cond2은 true 아니면 false
Cond2 = sdate == exitdate(1) And MarketPosition(1) == -1;
#15시 이전에
If stime < 150000 Then {
#직전거래가 매수가 아니고(매수로 연속으로 진입신호발생을 금지하는 용도)
If Cond1 == False Then {
#시가대비 + var3의 37% 만큼 시세가 상승하면 매수
buy("매수1", Atstop, open + var3 * len1);
}
#직전거래가 매도가 아니고(매도로 연속으로 진입신호발생을 금지하는 용도)
If Cond2 == False Then {
#시가대비 - var3의 37% 만큼 시세가 하락하면 매도
sell("매도1", Atstop, Def, open - var3 * len1);
}
}
#포지션 진입 후
If MarketPosition <> 0 Then
{
#진입이후 최고가대비 최근 20개봉의 평균변동폭의 2.7배만큼 하락하면 매수포지션 청산
exitlong("매수청산", Atstop, highest(high, BarsSinceEntry + 1) - atr(20) * len);
#진입이후 최저가대비 최근 20개봉의 평균변동폭의 2.7배만큼 상승하면 매도포지션 청산
exitshort("매도청산", Atstop, Lowest(low, BarsSinceEntry + 1) + atr(20) * len);
}
즐거운 하루되세요
> 바람날개 님이 쓴 글입니다.
> 제목 : 조건식 검토 부탁드립니다.
> 안녕하세요.
아래조건대로 시스템식 만들려고 하는데요.
적용해보니 에러가 나고 이해가 안되는 부분이 있습니다.
#===== 설명 부탁(아래 내용 이해 불가) ==# 부터
설명좀 부탁드립니다.
좋은하루 되세요.
감사합니다.
------------------
조 건 계 산 식
-------------------
금일 시가>전일 종가
-------------------
목표 고가=(전일고가+전일종가+2*전일저가)/2-전일저가
목표 저가=(전일고가+전일종가+2*전일저가)/2-전일고가
금일 시가<전일 종가
-------------------
목표 고가=(2*전일고가+전일종가+전일저가)/2-전일저가
목표 저가=(2*전일고가+전일종가+2*전일저가)/2-전일고가
금일 시가=전일 종가
--------------------
목표 고가=(전일고가+2*전일종가+전일저가)/2-전일저가
목표 저가=(전일고가+2*전일종가+전일저가)/2-전일고가
======================================================
시가에 디마크 목표 고가와 목표 저가의 폭의 일정 비율을
가감해서 돌파 전략으로 사용한다.
======================================================
Input: len(2.7), len1(0.37);
var : var1(0), var2(0), var3(0), cond1(false),cond2(false);
If open > close[1] Then {
{
Var1 = (high[1] + close[1] + 2 * low[1]) / 2 - low[1];
Var2 = (high[1] + close[1] + 2 * low[1]) / 2 - high[1];
}
Else if open < close[1] Then
{
Var1 = (2 * high[1] + close[1] + low[1]) / 2 - low[1];
Var2 = (2 * high[1] + close[1] + low[1]) / 2 - high[1];
}
Else
{
Var1 = (high[1] + 2 * close[1] + low[1]) / 2 - low[1];
Var2 = (high[1] + 2 * close[1] + low[1]) / 2 - high[1];
}
}
Var3 = (Var1 - var2);
#===== 설명 부탁(아래 내용 이해 불가) ==#
Cond1 = tdate = exitdate(1) And position(1) = 1;
Cond2 = tdate = exitdate(1) And position(1) = -1;
If stime < 150000 Then {
If Cond1 == False Then {
buy("매수1", Atstop, Def, open + var3 * len1);
}
}
If Cond2 = False Then {
sell("매도1", Atstop, Def, open - var3 * len1);
}
If position <> 0 Then
{
exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry + 1) - atr(20) * len);
exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry + 1) + atr(20) * len);
}
다음글
이전글