커뮤니티
문의드립니다.
2014-02-14 00:05:52
171
글번호 72532
연결선물지수 : 90틱
사용지표(맨밑에참고)---------------
호가잔량(3) -> 하이투자증권 지표 그대로 사용
기본지표(1.5,20)
신호지표1(25,55,45,0,20)
신호지표2(28,56,48,0,21)
신호지표3(40,80,60,0,30)
----------------
#각 수식 문구에 주석 넣어 주시면 감사하겠습니다. 수정을 위해서요.#
*진입신호
1.매수진입
신호지표1~3 중 골드크로스(SIG가 STD를 상향돌파) 때
호가잔량(매도<매수)과 기본지표(SIG>STD)는 골드상태이면 매수
2.매도진입
신호지표1~3 중 데드크로스(SIG가 STD를 하향돌파) 때
호가잔량(매도>매수)과 기본지표(SIG<STD)는 데드상태이면 매도
3.장시작후 첫봉으로 매수,매도 진입 (첫봉에서만 해당)
장시작후 첫봉 완성후
1)매수진입
호가잔량 매수>매도 and 기본지표 SIG>STD and (신호지표1~3 중 하나라도 SIG>STD)일때 매수
1)매도진입
호가잔량 매수<매도 and 기본지표 SIG<STD and (신호지표1~3 중 하나라도 SIG<STD)일때 매도
4.진입횟수는 하루 4번으로 제한
5.청산 누계로 손실 1.5p 이상이면 당일 매매 스톱
6.첫번째 청산과 두번째 청산이 연속 손실이면 당일 매매 스톱
*청산
1.청산
1)신호지표2가 진입신호 반대로 크로스날때 청산
(매수청산: 신호지표2 SIG가 STD 하향돌파시, 매도청산: 신호지표2 SIG가 STD 상향돌파시)
2)신호지표1 or 3으로 진입한 경우 (위항목의 1번청산 조건으로 청산 안된 경우)
-.매수청산
신호지표 1 or 3 로 매수(SIG가STD상향돌파) 진입한후 데드크로스(SIG가STD하향돌파) 났는데도
신호지표 2 가 SIG<STD 데드상태면
신호지표 1 or 3 데드크로스(SIG가STD하향돌파)로 청산
-.매도청산
신호지표 1 or 3 로 매도(SIG가STD하향돌파) 진입한후 골드크로스(SIG가STD상향돌파) 났는데도
신호지표 2 가 SIG>STD 골드상태면
신호지표 1 or 3 골드크로스(SIG가STD하향돌파)로 청산
2.기타
수익고점대비 -0.6p 이면 청산
손절 : 2p
신호마감시간: 144800
당일청산시간: 150310
만기일청산시간: 142800
*사용자지표 수식
#기본지표(1.5,20)---------------------------
input : Atime(1.5),P1(20);
var : cnt(0),count(0),sum1(0),mav1(0);
Array : CC[100](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt = 1 to 99{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
sum1 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;
plot1(mav1, "STD");
plot2(c, "SIG");
-----------------------------------------------
#신호지표1-------------------------------------
INPUTS: R(28), S(56), U(48), ZEROLINE(0), SMTHLEN(21);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표2-------------------------------------
INPUTS: R(25), S(55), U(45), ZEROLINE(0), SMTHLEN(20);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표3-------------------------------------
INPUTS: R(40), S(80), U(60), ZEROLINE(0), SMTHLEN(30);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
답변 1
예스스탁 예스스탁 답변
2014-02-14 10:38:08
안녕하세요
예스스탁입니다.
#기본지표
input : Atime(1.5),P1(20);
var : cnt(0),count(0),sum1(0),mav1(0),daycount(0);
Array : CC[100](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt = 1 to 99{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
sum1 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;//std
#신호지표1
INPUTS: R1(28), S1(56), U1(48), ZEROLINE1(0), SMTHLEN1(21);
var : TSIv1(0),TSIS1(0);
TSIv1 = TSI(C, R1, S1, U1); #SIG
TSIs1 = Ema(TSI(C, R1, S1, U1), SMTHLEN1); #STD
#신호지표2
INPUTS: R2(25), S2(55), U2(45), ZEROLINE2(0), SMTHLEN2(20);
var : TSIv2(0),TSIS2(0);
TSIv2 = TSI(C, R2, S2, U2); #SIG
TSIs2 = Ema(TSI(C, R2, S2, U2), SMTHLEN2); #STD
#신호지표3
INPUTS: R3(40), S3(80), U3(60), ZEROLINE3(0), SMTHLEN3(30);
var : TSIv3(0),TSIS3(0);
TSIv3 = TSI(C, R3, S3, U3); #SIG
TSIs3 = Ema(TSI(C, R3, S3, U3), SMTHLEN3); #STD
#호가잔량이평
Input : Period(3);
var : AsksMA(0),BidsMA(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
#당일진입횟수
daycount = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
daycount = daycount+1;
}
if date != date[1] Then
Condition1 = false;
# 첫번째 진입 손실 후 두번째 진입의 최종 수익/손실여부 체크
if MarketPosition != 0 and daycount == 2 and PositionProfit(1) < 0 Then{
if (MarketPosition == 1 and C > EntryPrice) or (MarketPosition == -1 and C < EntryPrice) Then
Condition1 = true;
Else
Condition1 = False;
}
# 일간 손익
var : NP(0),PreNP(0),dayPL(0);
NP = NetProfit;
if date != date[1] Then
PreNP = NP[1];
DayPL = (NP - PreNP)+PositionProfit;
if daycount < 4 and Condition1 == false and stime < 144800 then{
#신호지표1이 첫봉에서 SIG가 STD보다 크거나 두번째 봉부터 골드크로스 발생
if ((dayindex == 0 and TSIv1 > TSIs1) or (dayindex > 0 and crossup(TSIv1,TSIs1))) And
BidsMa > AsksMA and #매수 > 매도
c > mav1 Then{ #종가 > 이평
if dayPL > -1.5 Then #현재까지 당일손익이 -1.5이상이면 진입 아니면 청산만
buy("b1");
Else{
ExitShort();
}
}
#신호지표2이 첫봉에서 SIG가 STD보다 크거나 두번째 봉부터 골드크로스 발생
if ((dayindex == 0 and TSIv2 > TSIs2) or (dayindex > 0 and crossup(TSIv2,TSIs2))) And
BidsMa > AsksMA and
c > mav1 Then{
if dayPL > -1.5 Then
buy("b2");
Else
ExitShort();
}
#신호지표3이 첫봉에서 SIG가 STD보다 크거나 두번째 봉부터 골드크로스 발생
if ((dayindex == 0 and TSIv3 > TSIs3) or (dayindex > 0 and crossup(TSIv3,TSIs3))) And
BidsMa > AsksMA and
c > mav1 Then{
if dayPL > -1.5 Then
buy("b3");
Else
ExitShort();
}
#신호지표1이 첫봉에서 SIG가 STD보다 작거나 두번째 봉부터 데드크로스 발생
if ((dayindex == 0 and TSIv1 < TSIs1) or (dayindex > 0 and CrossDown(TSIv1,TSIs1))) And
BidsMa < AsksMA and
c < mav1 Then{
if dayPL > -1.5 Then#현재까지 당일손익이 -1.5이상이면 진입 아니면 청산만
sell("S1");
Else
ExitLong();
}
#신호지표3이 첫봉에서 SIG가 STD보다 작거나 두번째 봉부터 데드크로스 발생
if ((dayindex == 0 and TSIv2 < TSIs2) or (dayindex > 0 and CrossDown(TSIv2,TSIs2))) And
BidsMa < AsksMA and
c < mav1 Then{
if dayPL > -1.5 Then
sell("S2");
Else
ExitLong();
}
#신호지표3이 첫봉에서 SIG가 STD보다 작거나 두번째 봉부터 데드크로스 발생
if ((dayindex == 0 and TSIv3 < TSIs3) or (dayindex > 0 and CrossDown(TSIv3,TSIs3))) And
BidsMa < AsksMA and
c < mav1 Then{
if dayPL > -1.5 Then
sell("S3");
Else
ExitLong();
}
}
if MarketPosition == 1 Then{
#진입이후 최고가 대비 0.6 하락하면 청산
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.6);
#신호지표2 데드크로스 청산
if CrossDown(TSIv2,TSIs2) Then
ExitLong();
if (IsEntryName("B1") == true or IsEntryName("B3") == true) and #b1이나 b3으로 진입
TSIv2 < TSIV2 and #데드상태
(CrossDown(TSIv1,TSIs1) or CrossDown(TSIv3,TSIs3)) Then #1과 3중 하나 데드 발생하면 청산
ExitLong();
}
if MarketPosition == -1 Then{
#진입이후 최저가 대비 0.6상승하면 청산
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.6);
#신호지표2 골드크로스면 청산
if CrossUp(TSIv2,TSIs2) Then
ExitShort();
if (IsEntryName("S1") == true or IsEntryName("S3") == true) and #s1이나 s3로 진입
TSIv2 > TSIV2 and #골드상태
(CrossUp(TSIv1,TSIs1) or CrossUp(TSIv3,TSIs3)) Then#1과 3중 하나 골드 발생하면 청산
ExitShort();
}
#2포인트 손절
SetStopLoss(2,PointStop);
#당일청산
var : month(0),nday(0),week(0);
month = int(date/100)-int(date/10000)*100; //월
nday = date - int(date/100)*100; //일
week = DayOfWeek(date); //요일
if month%3 == 0 and // 3,6,9,12월이고
nday >= 8 and nday <= 14 and // 8일에서 14일 사이이고
week == 4 then // 목요일
SetStopEndofday(142800);
Else
SetStopEndofday(150300);
즐거운 하루되세요
> 비류천 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 연결선물지수 : 90틱
사용지표(맨밑에참고)---------------
호가잔량(3) -> 하이투자증권 지표 그대로 사용
기본지표(1.5,20)
신호지표1(25,55,45,0,20)
신호지표2(28,56,48,0,21)
신호지표3(40,80,60,0,30)
----------------
#각 수식 문구에 주석 넣어 주시면 감사하겠습니다. 수정을 위해서요.#
*진입신호
1.매수진입
신호지표1~3 중 골드크로스(SIG가 STD를 상향돌파) 때
호가잔량(매도<매수)과 기본지표(SIG>STD)는 골드상태이면 매수
2.매도진입
신호지표1~3 중 데드크로스(SIG가 STD를 하향돌파) 때
호가잔량(매도>매수)과 기본지표(SIG<STD)는 데드상태이면 매도
3.장시작후 첫봉으로 매수,매도 진입 (첫봉에서만 해당)
장시작후 첫봉 완성후
1)매수진입
호가잔량 매수>매도 and 기본지표 SIG>STD and (신호지표1~3 중 하나라도 SIG>STD)일때 매수
1)매도진입
호가잔량 매수<매도 and 기본지표 SIG<STD and (신호지표1~3 중 하나라도 SIG<STD)일때 매도
4.진입횟수는 하루 4번으로 제한
5.청산 누계로 손실 1.5p 이상이면 당일 매매 스톱
6.첫번째 청산과 두번째 청산이 연속 손실이면 당일 매매 스톱
*청산
1.청산
1)신호지표2가 진입신호 반대로 크로스날때 청산
(매수청산: 신호지표2 SIG가 STD 하향돌파시, 매도청산: 신호지표2 SIG가 STD 상향돌파시)
2)신호지표1 or 3으로 진입한 경우 (위항목의 1번청산 조건으로 청산 안된 경우)
-.매수청산
신호지표 1 or 3 로 매수(SIG가STD상향돌파) 진입한후 데드크로스(SIG가STD하향돌파) 났는데도
신호지표 2 가 SIG<STD 데드상태면
신호지표 1 or 3 데드크로스(SIG가STD하향돌파)로 청산
-.매도청산
신호지표 1 or 3 로 매도(SIG가STD하향돌파) 진입한후 골드크로스(SIG가STD상향돌파) 났는데도
신호지표 2 가 SIG>STD 골드상태면
신호지표 1 or 3 골드크로스(SIG가STD하향돌파)로 청산
2.기타
수익고점대비 -0.6p 이면 청산
손절 : 2p
신호마감시간: 144800
당일청산시간: 150310
만기일청산시간: 142800
*사용자지표 수식
#기본지표(1.5,20)---------------------------
input : Atime(1.5),P1(20);
var : cnt(0),count(0),sum1(0),mav1(0);
Array : CC[100](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt = 1 to 99{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
sum1 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;
plot1(mav1, "STD");
plot2(c, "SIG");
-----------------------------------------------
#신호지표1-------------------------------------
INPUTS: R(28), S(56), U(48), ZEROLINE(0), SMTHLEN(21);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표2-------------------------------------
INPUTS: R(25), S(55), U(45), ZEROLINE(0), SMTHLEN(20);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표3-------------------------------------
INPUTS: R(40), S(80), U(60), ZEROLINE(0), SMTHLEN(30);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
다음글
이전글