예스스탁
예스스탁 답변
2014-09-15 17:59:14
안녕하세요
예스스탁입니다.
아래내용 참고하시기 바랍니다.
문의하신 내용은 각 2개의 차트에(2분봉, 200틱봉)에 아이디를 부여하신 후에
(아이디 부여는 예스스팟 도움말의 차트객체 참고하시기 바랍니다)
아래 예스랭귀지 시스템식을 시험적용으로 적용하시고
input : Period(30),Ma1(15),short(33),Long(75),signal(9);
var : AA(0),BB(0),DD(0),EE(0),FF(0),GG(0),HH(0),II(0),DP(0),DM(0);
DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
AA=DP;
BB=DM;
DD=ma(HIGH, MA1);
EE=Trix(15);
FF=ema(EE,9);
GG=ma(LOW, MA1);
HH = MACD(short, long);
II = ema(HH,signal);
if o<c and AA>BB AND DD<=C AND EE>=FF and HH > II and HH >=0 Then
var10 =1 ;
if o>c and AA<BB AND GG>=C AND EE<=FF and HH < II and HH <=0 Then
var10 = -1 ;
if var10 == 1 Then
buy();
if var10 == -1 Then
sell();
스팟수식에서 2개의 차트에서 신호가 발생하는 것을 인지해 주문을 내게 작성하시면 됩니다.
2개 모두 Buy 신호 발생상태이면 매수주문
2개 모두 Sell 신호 발생상태이면 매도주문합니다.
스크립트 객체화면에서
계좌객체 추가 --> 객체명 Account1, 계좌번호 지정
종목객체 추가 --> 객체명 MarketData1, 차트종목과 같은 종목으로 지정
차트객체 추가 --> 객체명 Chart1, 2분 차트와 동일아이디 부여
차트객체 추가 --> 객체명 Chart2, 200틱 차트와 동일아이디 부여
var SK1,SK2,Pst;
function Main_OnStart()
{
Pst = 0;
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
if (SK1 == 1 && SK2 == 1)
{
//스팟적용후 처음 신호
if (Pst == 0)
{
//매수포지션 진입용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
Pst = 1;
}
//매도신호 이후
if (Pst == -1)
{
//매도포지션 청산용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
//매수포지션 진입용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
Pst = 1;
}
}
if (SK1 == 3 && SK2 == 3)
{
if (Pst == 0)
{
//매수포지션 진입용 매수주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
Pst = -1;
}
if (Pst == 1)
{
//매수포지션 청산용 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
//매도포지션 진입용 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
Pst = -1;
}
}
}
function Chart2_OnRiseSignal(Signal)
{
SK2 = Signal.signalKind;
if (SK1 == 1 && SK2 == 1)
{
//스팟적용후 처음 신호
if (Pst == 0)
{
//매수포지션 진입용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
Pst = 1;
}
//매도신호 이후
if (Pst == -1)
{
//매도포지션 청산용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
//매수포지션 진입용 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
Pst = 1;
}
}
if (SK1 == 3 && SK2 == 3)
{
if (Pst == 0)
{
//매수포지션 진입용 매수주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
Pst = -1;
}
if (Pst == 1)
{
//매수포지션 청산용 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
//매도포지션 진입용 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
Pst = -1;
}
}
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 2분봉과 200틱봉 시스템
> 항상 감사드립니다
아래식은 예스트레이더에서 사용하는 시스템식입니다
input : Period(30),Ma1(15),short(33),Long(75),signal(9);
var : AA(0),BB(0),DD(0),EE(0),FF(0),GG(0),HH(0),II(0),DP(0),DM(0);
DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
AA=DP;
BB=DM;
DD=ma(HIGH, MA1);
EE=Trix(15);
FF=ema(EE,9);
GG=ma(LOW, MA1);
HH = MACD(short, long);
II = ema(HH,signal);
if o<c and AA>BB AND DD<=C AND EE>=FF and HH > II and HH >=0 Then
var10 =1 ;
if o>c and AA<BB AND GG>=C AND EE<=FF and HH < II and HH <=0 Then
var10 = -1 ;
위식을 이용하여 2분봉과 200틱봉에서 같은신호가 나왓을때 신호를 발생시키고 싶습니다
1.시스템식
2분봉에서 var10=1 and 200틱봉에서 var10=1 이면 매수
2분봉에서 var10=-1 and 200틱봉에서 var10=-1 이면 매도
2. 신호발생시 2분봉 또는 200틱봉에서 서로 먼저 발생할수 있는데 챠트셋팅은 어느챠트를기준으로 해야 하는지...
감사합니다