커뮤니티
시스템식 부탁드립니다.
2013-05-10 03:23:40
243
글번호 63021
1. 봉이 양봉이고 and
몇봉이 떨어져있건 관계없이 직전최근 음봉만 골라서 7개,
그 직전최근 7개음봉중 종가가 가장 낮은 음봉의 고가보다 종가가 클 때
매도청산하고 그 종가를 기억.
다음봉에서건 그다음봉이건 기억된 종가이하에 즉시 매수.
봉이 음봉이고 and
몇봉이 떨어져있건 관계없이 직전최근 양봉만 골라서 7개,
그 직전최근 7개음봉중 종가가 가장 높은 양봉의 저가보다 종가가 작을 때
매수청산하고 그 종가를 기억.
다음봉에서건 그 다음봉이건 기억된 종가이상에 즉시 매도.
(일봉의 경우까지 감안한 식입니다.)
2. 아래내용에 대해 혼자서 만들어봐ㅆ는데요.
검증은 통과하는데 신호는 전혀 안 뜨네요.
분틱당일매매용(3시15분 강제청산)
매수 : 첫매매 : 종가>데이시가
두번째부터 : 직전(매수) : 현재데이중간값>데이시가 AND
최근 15봉중에 종가가 (데이저가+현재당일폭의 35%)를
넘어간 일이 있고,AND
종가가 그 15봉의 최고가를 2틱이상 뚫을 때
직전(매도) : 현재데이중간값>데이시가 AND
저가<(현재데이저가+현재당일폭의 45%) AND
저가>(현재데이저가+현재당일폭의 35%)일 때
매도 : 첫매매 : 종가<데이시가
두번째부터 : 직전(매도) : 현재데이중간값<데이시가 AND
최근15봉중에 종가가 (데이저가+현재당일폭의 65%)밑으로
간 사실이 있고 AND
종가가 그 15봉의 최저가를 2틱이상 밑돌 때
직전(매수) : 현재데이중간값<데이시가 AND
고가>(현재데이저가+현재당일폭의 55%) AND
고가<(현재데이저가+현재당일폭의 65%)일 때
매수청산 : (현재데이중간값>데이시가 AND
최근15봉중에 종가<(데이저가+현재당일폭의35%)인 일이 있고 AND
종가<그15봉의 최저가 일 때)
OR
(현재데이중간값<데이시가 AND 고가>(데이저가+현재당일폭의48%)일 때)
OR
(현재당일폭>4P일 때)
매도청산 : (현재데이중간값<데이시가 AND
최근15봉중에 종가>(데이저가+현재당일폭의65%)인 일이 있고 AND
종가>그 15봉의 최고가 일 때)
OR
(현재데이중간값>데이시가 AND 저가<(데이저가+현재당일폭의52%)일 때)
OR
(현재당일폭>4P일 때)
var:cnt(0),count(0);
count=0;
fot count=0 to 20{
if sdare==Entrydate(cnt) Then
count=counr+1
}
If (count==0 and c>dayopen)
or
(count>=1 and NarketPosition(1)==1 and (dayhigh+daylow)/2>dayopen and
countif(crossup(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and
c>Highest(H,15)[1]+0.10)
or
(count>=1 and Matketposition(1)==-1 and (dayhigh+daylow)/2>dayopen and
c<daylow+(dayhigh-daylow)*0.45 and c>daylow+(dayhigh-daylow)*0.35) Then{
Buy("");
}
If ((dayhigh+dayopen)/2>dayopen and
countif(crossdown(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and
c<Lowest(L,15)[1])
or
((dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.48)
or
dayhigh-daylow>4 Then{
Exitlong("");
}
If (count==0 and c<dayopen)
or
(count>=1 and MarketPosition(1)==-1 and (dayhigh+daylow)/2<dayopen and
countif(crossdown(c,daylow+(fayhigh-daylow)*0.65),15)>=1 and
c<Lowest(L,15)[1])
or
(count>=1 and MarketPosition(1)==1 and dayhigh+daylow)/2<dayopen and
c>daylow+(dayhigh-daylow)*0.55 and c<daylow+(dayhigh-daylow)*0.65) Then{
Sell("");
}
If ((dayhigh+daylow/2<dayopen and
countif(crossup(c,daylow+(daylow-dayhigh)*0.65))>=1 and
c>Highest(H,15)[1])
or
(dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.52)
or
dayhigh-daylow>4) Then{
Exitshort("");
}
틱을 몰라 그냥 숫자로 표시했는데 틱으로 고쳐써주시구요
(dayhigh+daylow)/2나 (dayhigh-daylow)처럼 반복되는 말을 치환하는 방법도 좀...
그리고 var와 value는 어떻게 다르고 어느때 사용하는지 간단한 설명도 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2013-05-10 11:09:01
안녕하세요
예스스탁입니다.
1.
var : cnt(0),LowBB(0),LowBH(0),HighRB(0),HighRL(0);
Array : BB[7](0),BH[7](0),RB[7](0),RL[7](0);
if C < O Then{
BB[0] = C;
BH[0] = H;
var1 = var1+1;
for cnt = 1 to 6{
BB[cnt] = BB[cnt-1][1];
BH[cnt] = BH[cnt-1][1];
}
}
if C > O Then{
RB[0] = C;
RL[0] = L;
var2 = var2+1;
for cnt = 1 to 6{
RB[cnt] = RB[cnt-1][1];
RL[cnt] = RL[cnt-1][1];
}
}
LowBB = BB[0];
lowBH = BH[0];
HighRB = RB[0];
HighRL = RL[0];
for cnt = 0 to 6 {
if BB[cnt] < LowBB Then{
LowBB = BB[cnt];
LowBH = BH[cnt];
}
if RB[cnt] > HighRB Then{
HighRB = RB[cnt];
HighRL = RL[cnt];
}
}
if MarketPosition == 1 and C > O and var1 >= 7 and C > LowBH Then
ExitShort("sx");
if MarketPosition == 0 and IsExitName("sx",1) == true and C < ExitPrice(1) Then
buy();
if MarketPosition == 1 and C < O and var2 >= 7 and C < HighRL Then
ExitLong("bx");
if MarketPosition == 0 and IsExitName("bx",1) == true and C > ExitPrice(1) Then
sell();
2.
올리신 식에서 당일진입 횟수를 세는 부분이 잘못작성되어 있습니다.
for문의 count를 cnt로 변경하시면 됩니다.
var:cnt(0),count(0);
count=0;
for cnt=0 to 20{
if sdate==Entrydate(cnt) Then
count=count+1;
}
3
수정한 식입니다.
var:cnt(0),count(0),DayRange(0),DayMidPrice(0);
count=0;
for cnt=0 to 20{
if sdate==Entrydate(cnt) Then
count=count+1;
}
DayRange = dayhigh-daylow;
DayMidPrice = (dayhigh+daylow)/2;
If (count==0 and c>dayopen) or
(count>=1 and MarketPosition == 0 and marketPosition(1)==1
and DayMidPrice > dayopen and
countif(crossup(c,daylow+DayRange*0.35),15)>=1 and
c>Highest(H,15)[1]+PriceScale*2)
or
(count>=1 and ((MarketPosition == 0 and marketPosition(1)==-1) or (MarketPosition == -1))
and DayMidPrice>dayopen and
c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{
Buy("");
}
If (DayMidPrice>dayopen and
countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and
c<Lowest(L,15)[1])
or
(DayMidPrice<dayopen and c>daylow+DayRange*0.48)
or
DayRange>4 Then{
Exitlong("");
}
If (count==0 and c<dayopen)
or
(count>=1 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and
countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and
c<Lowest(L,15)[1]-PriceScale*2)
or
( count>=1 and ((MarketPosition == 0 and MarketPosition(1)==1) or (MarketPosition == 1))
and DayMidPrice<dayopen and
c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65)
Then{
Sell("");
}
If (DayMidPrice<dayopen and
countif(crossup(c,daylow+DayRange*0.65),15)>=1 and
c>Highest(H,15)[1])
or
(DayMidPrice>dayopen and c<daylow+DayRange*0.52)
or
DayRange>4 Then{
Exitshort("");
}
4
var1~var99와 value1~value99는 다른 부분이 있는 변수가 아닙니다.
단지 이름만 다른 숫자형 변수일뿐입니다.
원하시는 이름 골라서 숫자값을 저장해 사용하시면 됩니다.
즐거운 하루되세요
> 묘선낭자 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다.
> 1. 봉이 양봉이고 and
몇봉이 떨어져있건 관계없이 직전최근 음봉만 골라서 7개,
그 직전최근 7개음봉중 종가가 가장 낮은 음봉의 고가보다 종가가 클 때
매도청산하고 그 종가를 기억.
다음봉에서건 그다음봉이건 기억된 종가이하에 즉시 매수.
봉이 음봉이고 and
몇봉이 떨어져있건 관계없이 직전최근 양봉만 골라서 7개,
그 직전최근 7개음봉중 종가가 가장 높은 양봉의 저가보다 종가가 작을 때
매수청산하고 그 종가를 기억.
다음봉에서건 그 다음봉이건 기억된 종가이상에 즉시 매도.
(일봉의 경우까지 감안한 식입니다.)
2. 아래내용에 대해 혼자서 만들어봐ㅆ는데요.
검증은 통과하는데 신호는 전혀 안 뜨네요.
분틱당일매매용(3시15분 강제청산)
매수 : 첫매매 : 종가>데이시가
두번째부터 : 직전(매수) : 현재데이중간값>데이시가 AND
최근 15봉중에 종가가 (데이저가+현재당일폭의 35%)를
넘어간 일이 있고,AND
종가가 그 15봉의 최고가를 2틱이상 뚫을 때
직전(매도) : 현재데이중간값>데이시가 AND
저가<(현재데이저가+현재당일폭의 45%) AND
저가>(현재데이저가+현재당일폭의 35%)일 때
매도 : 첫매매 : 종가<데이시가
두번째부터 : 직전(매도) : 현재데이중간값<데이시가 AND
최근15봉중에 종가가 (데이저가+현재당일폭의 65%)밑으로
간 사실이 있고 AND
종가가 그 15봉의 최저가를 2틱이상 밑돌 때
직전(매수) : 현재데이중간값<데이시가 AND
고가>(현재데이저가+현재당일폭의 55%) AND
고가<(현재데이저가+현재당일폭의 65%)일 때
매수청산 : (현재데이중간값>데이시가 AND
최근15봉중에 종가<(데이저가+현재당일폭의35%)인 일이 있고 AND
종가<그15봉의 최저가 일 때)
OR
(현재데이중간값<데이시가 AND 고가>(데이저가+현재당일폭의48%)일 때)
OR
(현재당일폭>4P일 때)
매도청산 : (현재데이중간값<데이시가 AND
최근15봉중에 종가>(데이저가+현재당일폭의65%)인 일이 있고 AND
종가>그 15봉의 최고가 일 때)
OR
(현재데이중간값>데이시가 AND 저가<(데이저가+현재당일폭의52%)일 때)
OR
(현재당일폭>4P일 때)
var:cnt(0),count(0);
count=0;
fot count=0 to 20{
if sdare==Entrydate(cnt) Then
count=counr+1
}
If (count==0 and c>dayopen)
or
(count>=1 and NarketPosition(1)==1 and (dayhigh+daylow)/2>dayopen and
countif(crossup(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and
c>Highest(H,15)[1]+0.10)
or
(count>=1 and Matketposition(1)==-1 and (dayhigh+daylow)/2>dayopen and
c<daylow+(dayhigh-daylow)*0.45 and c>daylow+(dayhigh-daylow)*0.35) Then{
Buy("");
}
If ((dayhigh+dayopen)/2>dayopen and
countif(crossdown(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and
c<Lowest(L,15)[1])
or
((dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.48)
or
dayhigh-daylow>4 Then{
Exitlong("");
}
If (count==0 and c<dayopen)
or
(count>=1 and MarketPosition(1)==-1 and (dayhigh+daylow)/2<dayopen and
countif(crossdown(c,daylow+(fayhigh-daylow)*0.65),15)>=1 and
c<Lowest(L,15)[1])
or
(count>=1 and MarketPosition(1)==1 and dayhigh+daylow)/2<dayopen and
c>daylow+(dayhigh-daylow)*0.55 and c<daylow+(dayhigh-daylow)*0.65) Then{
Sell("");
}
If ((dayhigh+daylow/2<dayopen and
countif(crossup(c,daylow+(daylow-dayhigh)*0.65))>=1 and
c>Highest(H,15)[1])
or
(dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.52)
or
dayhigh-daylow>4) Then{
Exitshort("");
}
틱을 몰라 그냥 숫자로 표시했는데 틱으로 고쳐써주시구요
(dayhigh+daylow)/2나 (dayhigh-daylow)처럼 반복되는 말을 치환하는 방법도 좀...
그리고 var와 value는 어떻게 다르고 어느때 사용하는지 간단한 설명도 부탁드립니다.
다음글
이전글