예스스탁
예스스탁 답변
2013-07-22 11:39:21
안녕하세요
예스스탁입니다.
스크립트 객체화면에서
차트객체 2개, 종목객체1개, 계좌객체 1개를 설정하시고 사용하셔야 합니다
차트객체1 --> 객체명 Chart1 --> 속성에서 아이디 연결
차트객체2 --> 객체명 Chart2 --> 속성에서 아이디 연결
종목객체 --> 객체명 MarketData1 --> 속석에서 선물로 지정
계좌객체 --> 객체명 Account1 --> 속송에서 선옵게좌 선택
스팟 수식은 기본틀만 작성해 드립니다.
아래식 참고하셔서 수정 보완해 사용하시기 바랍니다.
각 차트별로 신호의 종류를 저장하는 변수가 S1, S2입니다.
2개다 1을 기록하면 선물 매수주문 하고 MP는 1
2개다 3을 기록하면 선물 매도주문 하고 MP는 -1
MP가 1인 상태에서 차트1이나 차트2에서
매수청산신호나 매도신호 발생하면
잔고상 선물 매수포지션 있는지 확인하고 선물 매도주문,MP는 0
MP가 -1인 상태에서 차트1이나 차트2에서
매도청산신호나 매수신호 발생하면
잔고상 선물 매도포지션 있는지 확인하고 선물 매수주문, MP는 0
var S1;
var S2;
var MP;
function Main_OnStart()
{
S1 = 0;
S2 = 0;
MP = 0;
}
function Chart1_OnRiseSignal(Signal)
{
S1 = Signal.signalKind;
if (S1 == 1 && S2 == 1)
{
Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0);
MP = 1;
}
if (S1 == 3 && S2 == 3)
{
Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0);
MP = -1;
}
if (MP == 1 &&(S1 == 2 || S1 == 3))
{
MP = 0;
Account1.SetBalanceItem(MarketData1.code, 0);
if (Account1.Balance.position == 2)
{
Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0);
}
}
if (MP == -1 && (S1 == 4 || S1 == 1))
{
MP = 0;
Account1.SetBalanceItem(MarketData1.code, 0);
if (Account1.Balance.position == 1)
{
Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0);
}
}
}
function Chart2_OnRiseSignal(Signal)
{
S2 = Signal.signalKind;
if (S2 == 1 && S1 == 1)
{
Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0);
MP = 1;
}
if (S2 == 3 && S1 == 3)
{
Account1.OrderSell(MarketData1.code, 1, MarketData1.Ask(1), 0);
MP = -1;
}
if (MP == 1 && (S2 == 2 || S2 == 3))
{
MP = 0;
Account1.SetBalanceItem(MarketData1.code, 0);
if (Account1.Balance.position == 2)
{
Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0);
}
}
if (MP == -1 && (S2 == 4 || S2 == 1))
{
MP = 0;
Account1.SetBalanceItem(MarketData1.code, 0);
if (Account1.Balance.position == 1)
{
Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0);
}
}
}
즐거운 하루되세요
> 극동해 님이 쓴 글입니다.
> 제목 : 수식 문의드립니다.
> 다음과 같은 전략을 작성하려고 하는데요.
1. 진입(매수인 경우)
차트A 그리고 차트B에서 매수신호가 발생하면 선물 매도1호가 1개 매수진입한다.
(챠트마다 매수신호가 발생하는 시기가 다르므로 한 챠트에서 매수신호가 발생하는 시
점에 다른 챠트의 신호상태를 체크해서 동일 방향이면 매수진입하는 방법)
2. 청산(매수청산인 경우)
챠트A 또는 챠트B에서 매수청산신호(익절) 또는 매도신호가 발생하면 선물 매수1호가 1개 청산한다.
매도는 이와 반대로 되면 될 것 같은데요.
수식 좀 부탁드립니다.
감사합니다.