커뮤니티
시스템식 부탁드립니다
2017-03-06 08:29:11
135
글번호 107471
항상 도움 주셔서 감사합니다.
아래처럼 코딩을 하였는데 매매가 안됩니다.
매매가 될수 있도록 도움 부탁드립니다.
//========================================================
// 추세선으로 매매하기
//========================================================
input : 추세선시작일1(20170303),추세선시작시간1(070000); //추세선1-저가
input : 추세선종료일1(20170303),추세선종료시간1(190500); //추세선1-저가2
input : 추세선시작일2(20170303),추세선시작시간2(011000); //추세선2-고가
input : 추세선종료일2(20170303),추세선종료시간2(174500); //추세선2-고가2
input : X1(0.65),X11(-0.65),X2(0.6),X22(-0.6) ;// 추세선 이동
input : loss(10),profit(30),Tp(10),Ts(5); // 수익,손절,트레일링스탑
var : TL1(0),TLL1(0),TLLL1(0),T1(0); //추세선1
var : TL2(0),TLL2(0),TLLL2(0),T2(0); //추세선2
##### 추세선 그리기 #####
// 추세선1 - 저가
if sdate == 추세선시작일1 and time == 추세선시작시간1 Then{
T1 = 1;
var1 = L;
}
if T1 == 1 and sdate == 추세선종료일1 and time == 추세선종료시간1 Then{
var2 = L;
TL1 = TL_New(추세선시작일1,추세선시작시간1,var1,추세선종료일1,추세선종료시간1,var2);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,BLUE) ;
T1 = 2;
TLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x1,추세선종료일1,추세선종료시간1,var2+x1); //추세선 복사
TL_SetExtLeft(TLL1,true);
TL_SetExtRight(TLL1,true);
TL_SetColor(TLL1,BLUE) ;
TLLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x11,추세선종료일1,추세선종료시간1,var2+x11); //추세선 복사
TL_SetExtLeft(TLLL1,true);
TL_SetExtRight(TLLL1,true);
TL_SetColor(TLLL1,BLUE) ;
}
// 추세선2 - 고가
if sdate == 추세선시작일2 and time == 추세선시작시간2 Then{
T2 = 1;
var3 = H;
}
if T2 == 1 and sdate == 추세선종료일2 and time == 추세선종료시간2 Then{
var4 = H;
TL2 = TL_New(추세선시작일2,추세선시작시간2,var3,추세선종료일2,추세선종료시간2,var4);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,RED) ;
T2 = 2;
TLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x2,추세선종료일2,추세선종료시간2,var4+x2);
TL_SetExtLeft(TLL2,true);
TL_SetExtRight(TLL2,true);
TL_SetColor(TLL2,RED) ;
TLLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x22,추세선종료일2,추세선종료시간2,var4+x22);
TL_SetExtLeft(TLLL2,true);
TL_SetExtRight(TLLL2,true);
TL_SetColor(TLLL2,RED) ;
}
##### 시스템매매 #####
// 진입 시스템
// 매매시간 시작(2개의 추세선 중 늦은시간의 추세선이 그려진 이후 매매)
if sdate >= 추세선종료일1 and stime >= 추세선종료시간1 then {
// 저가선 하락돌파
if T1 == 2 and MarketPosition == 0 then{
if C < TL_GetValue(TL1,sdate,stime) and C[1] > TL_GetValue(TL1,sdate[1],stime[1]) Then
sell("S");
}
// 고가선 상승돌파
if T2 == 2 and MarketPosition == 0 then{
if C > TL_GetValue(TL2,sdate,stime) and C[1] < TL_GetValue(TL2,sdate[1],stime[1]) Then
Buy("B");
}
// 청산 시스템
// 매도청산
if T1 == 2 and MarketPosition == -1 then{
if (C <= TL_GetValue(TLLL1,sdate,stime) and C[1] > TL_GetValue(TLLL1,sdate[1],stime[1]))
or (C <= TL_GetValue(TLLL2,sdate,stime) and C[1] > TL_GetValue(TLLL2,sdate[1],stime[1])) Then
ExitShort("SX");
}
// 매수청산
if T2 == 2 and MarketPosition == 1 then{
if (C >= TL_GetValue(TLL1,sdate,stime) and C[1] < TL_GetValue(TLL1,sdate[1],stime[1]))
or (C >= TL_GetValue(TLL2,sdate,stime) and C[1] < TL_GetValue(TLL2,sdate[1],stime[1])) Then
ExitLong("BX");
}
// 매매시간종료
}
##### 스탑로스 #####
//SetStopProfittarget(Profit*PriceScale,PointStop);
SetStopLoss(loss*PriceScale,PointStop);
//SetStopTrailing(TS*PriceScale,TP*PriceScale,PointStop);
SetStopEndofday(065000) ;
- 위 코딩은 오일 4월물로 테스트 부탁드립니다.
그리고 한가지 부탁드립니다.
예스스탁에서 추세선 매매 할수 있는 시스템 개발 좀 부탁드립니다.
추세선 매매가 되면 더 많은 사람들이 예스스탁을 이용할 것이며,
수식작성에 대한 문의도 줄어들것으로 예상됩니다.
추세선 매매만 된다면 정말 훌륭한 시스템매매 툴이 될것으로 생각됩니다.
다시한번 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2017-03-06 15:30:35
안녕하세요
예스스탁입니다.
수식내 설정하신 당일청산때문에 신호가 발생하지 않는 것입니다.
당일청산(SetStopEndofday)는 지정한 시간으로
당일 밤 12시 까지 진입을 막게 됩니다.
해외선물은 24시가 기준이 되므로 일정시간에 당일청산을 한다면
if문으로 시간을 지정해 청산되게 하셔야 합니다.
setstopendofday함수 삭제하시고
아래식 추가하시면 됩니다.
if stime == 065000 or (stime > 065000 and stime[1] < 065000) Then{
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다
> 항상 도움 주셔서 감사합니다.
아래처럼 코딩을 하였는데 매매가 안됩니다.
매매가 될수 있도록 도움 부탁드립니다.
//========================================================
// 추세선으로 매매하기
//========================================================
input : 추세선시작일1(20170303),추세선시작시간1(070000); //추세선1-저가
input : 추세선종료일1(20170303),추세선종료시간1(190500); //추세선1-저가2
input : 추세선시작일2(20170303),추세선시작시간2(011000); //추세선2-고가
input : 추세선종료일2(20170303),추세선종료시간2(174500); //추세선2-고가2
input : X1(0.65),X11(-0.65),X2(0.6),X22(-0.6) ;// 추세선 이동
input : loss(10),profit(30),Tp(10),Ts(5); // 수익,손절,트레일링스탑
var : TL1(0),TLL1(0),TLLL1(0),T1(0); //추세선1
var : TL2(0),TLL2(0),TLLL2(0),T2(0); //추세선2
##### 추세선 그리기 #####
// 추세선1 - 저가
if sdate == 추세선시작일1 and time == 추세선시작시간1 Then{
T1 = 1;
var1 = L;
}
if T1 == 1 and sdate == 추세선종료일1 and time == 추세선종료시간1 Then{
var2 = L;
TL1 = TL_New(추세선시작일1,추세선시작시간1,var1,추세선종료일1,추세선종료시간1,var2);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,BLUE) ;
T1 = 2;
TLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x1,추세선종료일1,추세선종료시간1,var2+x1); //추세선 복사
TL_SetExtLeft(TLL1,true);
TL_SetExtRight(TLL1,true);
TL_SetColor(TLL1,BLUE) ;
TLLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x11,추세선종료일1,추세선종료시간1,var2+x11); //추세선 복사
TL_SetExtLeft(TLLL1,true);
TL_SetExtRight(TLLL1,true);
TL_SetColor(TLLL1,BLUE) ;
}
// 추세선2 - 고가
if sdate == 추세선시작일2 and time == 추세선시작시간2 Then{
T2 = 1;
var3 = H;
}
if T2 == 1 and sdate == 추세선종료일2 and time == 추세선종료시간2 Then{
var4 = H;
TL2 = TL_New(추세선시작일2,추세선시작시간2,var3,추세선종료일2,추세선종료시간2,var4);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,RED) ;
T2 = 2;
TLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x2,추세선종료일2,추세선종료시간2,var4+x2);
TL_SetExtLeft(TLL2,true);
TL_SetExtRight(TLL2,true);
TL_SetColor(TLL2,RED) ;
TLLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x22,추세선종료일2,추세선종료시간2,var4+x22);
TL_SetExtLeft(TLLL2,true);
TL_SetExtRight(TLLL2,true);
TL_SetColor(TLLL2,RED) ;
}
##### 시스템매매 #####
// 진입 시스템
// 매매시간 시작(2개의 추세선 중 늦은시간의 추세선이 그려진 이후 매매)
if sdate >= 추세선종료일1 and stime >= 추세선종료시간1 then {
// 저가선 하락돌파
if T1 == 2 and MarketPosition == 0 then{
if C < TL_GetValue(TL1,sdate,stime) and C[1] > TL_GetValue(TL1,sdate[1],stime[1]) Then
sell("S");
}
// 고가선 상승돌파
if T2 == 2 and MarketPosition == 0 then{
if C > TL_GetValue(TL2,sdate,stime) and C[1] < TL_GetValue(TL2,sdate[1],stime[1]) Then
Buy("B");
}
// 청산 시스템
// 매도청산
if T1 == 2 and MarketPosition == -1 then{
if (C <= TL_GetValue(TLLL1,sdate,stime) and C[1] > TL_GetValue(TLLL1,sdate[1],stime[1]))
or (C <= TL_GetValue(TLLL2,sdate,stime) and C[1] > TL_GetValue(TLLL2,sdate[1],stime[1])) Then
ExitShort("SX");
}
// 매수청산
if T2 == 2 and MarketPosition == 1 then{
if (C >= TL_GetValue(TLL1,sdate,stime) and C[1] < TL_GetValue(TLL1,sdate[1],stime[1]))
or (C >= TL_GetValue(TLL2,sdate,stime) and C[1] < TL_GetValue(TLL2,sdate[1],stime[1])) Then
ExitLong("BX");
}
// 매매시간종료
}
##### 스탑로스 #####
//SetStopProfittarget(Profit*PriceScale,PointStop);
SetStopLoss(loss*PriceScale,PointStop);
//SetStopTrailing(TS*PriceScale,TP*PriceScale,PointStop);
SetStopEndofday(065000) ;
- 위 코딩은 오일 4월물로 테스트 부탁드립니다.
그리고 한가지 부탁드립니다.
예스스탁에서 추세선 매매 할수 있는 시스템 개발 좀 부탁드립니다.
추세선 매매가 되면 더 많은 사람들이 예스스탁을 이용할 것이며,
수식작성에 대한 문의도 줄어들것으로 예상됩니다.
추세선 매매만 된다면 정말 훌륭한 시스템매매 툴이 될것으로 생각됩니다.
다시한번 부탁드립니다.
다음글
이전글