커뮤니티
시스템 문의 드립니다
2015-12-03 16:18:45
109
글번호 93044
수고하십니다.
input : P1(3), cut(2) ;
var : sum1(0),cnt(0);
Var1 = (dayopen+dayclose)/2;
sum1 = 0;
for cnt = 0 to P1-1{
sum1 = sum1+(dayopen(cnt)+DayClose(cnt))/2; }
if EntryDate(cut) != sDate Then
if crossup(O,Var1) then
{
Sell("매도해라"); }
if crossdown (C,Var1) then
{
Buy("매수해라");}
setstopprofittarget(0.5,pointstop) ;
setstoploss(0.5,pointstop) ;
setstopendofday(140000) ;
개인적으로 만들어본 이 시스템이
시가가 중앙선 돌파시 매도
종가가 중앙선 하향돌파시 매수
하루 두번 플레이
익절 0.5
손절 0.5
2시청산
맞는지 여쭤보고 싶어서 글을 올리게되었습니다.
그리고 각 함수의 식마다 부가적인 설명 부탁드립니다.
(첫번째줄 p1과
열번째줄 !가 무엇을 의미하는지 궁금합니다.)
번거롭게해서 죄송합니다.
답변 1
예스스탁 예스스탁 답변
2015-12-03 17:09:05
안녕하세요
예스스탁입니다.
현재식에 불필요한 내용이 있어 삭제했습니다.
sum1 = 0;
for cnt = 0 to P1-1{
sum1 = sum1+(dayopen(cnt)+DayClose(cnt))/2; }
위 내용은 당일포함 P1일간의
시가와 종가의 중간값을 누적하는 식입니다.
즉 input의 P1은 위 식의 일수를 지정한 변수입니다.
진입횟수를 세는 부분은 기존의
EntryDate(cut) != sDate
로는 2번으로 제어가 되지 않습니다.
아래 당일 진입횟수를 세는 내용을 추가해 드렸습니다.
!=은 2개의 값이 다르다라는 표현입니다.
A == B는 A와 B가 같다
A != B는 A와 B가 다르다 입니다.
만약 중앙선이 단순 당일의 시가와 종가의 중간값이 아니고
P1일간의 평균값이면 2번식을 이용하시기 바랍니다.
1번식은 당일시가와 종가의 중간값입니다.
1번
input : P1(3), cut(2) ;
var : sum1(0),cnt(0);
var : T1(0),entry(0);
#날짜가 변경되면 지금까지의 총 거래횟수 저장
if date != date[1] Then
T1 = TotalTrades;
#당일진입횟수 계산
#현재 무포지션이면 현재 총거래횟수에서 첫봉기준 총거래횟수를 뺌
#현재 무포지션이 아니면(매수나 매도진입상태이면)
#현재 총거래횟수에서 첫봉기준 총거래횟수를 빼고 1을 더해붐
#1을 더하는 것은 미청산포지션은 거래횟수에 들어가지 않으므로 1을 더해 미청산도 거래횟수로 감안하기 위함입니다.
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
#당일시가와종가의 중간값
Var1 = (dayopen+dayclose)/2;
#당일 2번까지
if entry < 2 Then{
#시가가 중간값을 상향돌파하면 매도
if crossup(O,Var1) then
{
Sell("매도해라");
}
#시가가 중간값을 하향이탈하면 매수
if crossdown (C,Var1) then
{
Buy("매수해라");
}
}
#0.5 목표수익
setstopprofittarget(0.5,pointstop) ;
#0.5 손절
setstoploss(0.5,pointstop) ;
#14시 당일청산
setstopendofday(140000) ;
2번
input : P1(3), cut(2) ;
var : sum1(0),cnt(0);
var : T1(0),entry(0);
#날짜가 변경되면 지금까지의 총 거래횟수 저장
if date != date[1] Then
T1 = TotalTrades;
#당일진입횟수 계산
#현재 무포지션이면 현재 총거래횟수에서 첫봉기준 총거래횟수를 뺌
#현재 무포지션이 아니면(매수나 매도진입상태이면)
#현재 총거래횟수에서 첫봉기준 총거래횟수를 빼고 1을 더해붐
#1을 더하는 것은 미청산포지션은 거래횟수에 들어가지 않으므로 1을 더해 미청산도 거래횟수로 감안하기 위함입니다.
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
#기초값을 0
sum1 = 0;
for cnt = 0 to P1-1{
#cnt에 0이 저장되면
#sum1에 (dayopen(0)+DayClose(0))/2 값을 저장
#cnt에 1이 저장되면
#sum1에 (dayopen(1)+DayClose(1))/2 값을 저장
sum1 = sum1+(dayopen(cnt)+DayClose(cnt))/2;
}
#누적값을 일수로 나누어 평균
Var1 = sum1/P1;
#당일 2번까지
if entry < 2 Then{
#시가가 중간값을 상향돌파하면 매도
if crossup(O,Var1) then
{
Sell("매도해라");
}
#시가가 중간값을 하향이탈하면 매수
if crossdown (C,Var1) then
{
Buy("매수해라");
}
}
#0.5 목표수익
setstopprofittarget(0.5,pointstop) ;
#0.5 손절
setstoploss(0.5,pointstop) ;
#14시 당일청산
setstopendofday(140000) ;
즐거운 하루되세요
> 이세야 님이 쓴 글입니다.
> 제목 : 시스템 문의 드립니다
> 수고하십니다.
input : P1(3), cut(2) ;
var : sum1(0),cnt(0);
Var1 = (dayopen+dayclose)/2;
sum1 = 0;
for cnt = 0 to P1-1{
sum1 = sum1+(dayopen(cnt)+DayClose(cnt))/2; }
if EntryDate(cut) != sDate Then
if crossup(O,Var1) then
{
Sell("매도해라"); }
if crossdown (C,Var1) then
{
Buy("매수해라");}
setstopprofittarget(0.5,pointstop) ;
setstoploss(0.5,pointstop) ;
setstopendofday(140000) ;
개인적으로 만들어본 이 시스템이
시가가 중앙선 돌파시 매도
종가가 중앙선 하향돌파시 매수
하루 두번 플레이
익절 0.5
손절 0.5
2시청산
맞는지 여쭤보고 싶어서 글을 올리게되었습니다.
그리고 각 함수의 식마다 부가적인 설명 부탁드립니다.
(첫번째줄 p1과
열번째줄 !가 무엇을 의미하는지 궁금합니다.)
번거롭게해서 죄송합니다.
다음글
이전글