예스스탁
예스스탁 답변
2018-12-14 16:24:17
안녕하세요
예스스탁입니다.
1
예스스팟은 과거 시뮬레이션이 되지는 않습니다.
항상 실시간에서만 동작하므로 과거 데이터를 통한 시뮬레이션이나 리포트는 제공되지 않습니다.
차트에 적용하는 시스템은 해당 차트의 기본종목만 신호가 발생합니다
다른종목으로 주문이 불가능합니다.
2
직전진입의 포지션 방향과 현재진입의 방향이 불분명합니다.
아래수식 참고하시기 바랍니다.
스크립트 객체설정
차트객체 추가 --> 속성에서 객체명은 Chart1, 아이디연결
계좌객체 추가 --> 속성에서 객체명은 Account1, 계좌번호 지정
종목객체 추가 --> 속성에서 객체명은 MarketData1. A종목으로 지정
종목객체 추가 --> 속성에서 객체명은 MarketData2. B종목으로 지정
var EntryName,EntryName1;
var ExitName,ExitName1;
var EntryCode;
function Chart1_OnRiseSignal(Signal)
{
//Buy
if (Signal.signalKind == 1)
{
//직전 Buy신호의 이름
EntryName1 = EntryName;
//현재 Buy신호의 이름
EntryName = Signal.name ;
//현재진입명은 B1이 아니고 직전진입은 B1이고 BX1로 청산되었다면
//MarketData2 종목으로 진입
if (EntryName != "B1" && EntryName1 == "B1" && ExitName != "BX1")
{
EntryCode = Main.GetOrderCode(MarketData2.code);
Account1.OrderBuy(EntryCode, 1, MarketData2.Ask(3), 0);
}
else //위 상황이 아니면 MarketData1 종목으로 진입
{
EntryCode = Main.GetOrderCode(MarketData1.code);
Account1.OrderBuy(EntryCode, 1, MarketData2.Ask(3), 0);
}
}
//exitlong
if (Signal.signalKind == 2)
{
//직전 Exitlong신호의 이름
ExitName1 = ExitName;
//현재 Exitlong신호의 이름
ExitName = Signal.name;
//직전진입이MarketData1 이면
if (EntryCode == Main.GetOrderCode(MarketData1.code))
Account1.OrderSell(EntryCode, 1, MarketData1.Bid(3),0);
//직전진입이MarketData2 이면
if (EntryCode == Main.GetOrderCode(MarketData2.code))
Account1.OrderSell(EntryCode, 1, MarketData2.Bid(3),0);
}
//Sell
if (Signal.signalKind == 3)
{
//직전 Sell신호의 이름
EntryName1 = EntryName;
//현재 Sell신호의 이름
EntryName = Signal.name ;
//현재진입명은 S1이 아니고 직전진입은 S1이고 SX1로 청산되었다면
//MarketData2 종목으로 진입
if (EntryName != "S1" && EntryName1 == "S1" && ExitName != "SX1")
{
EntryCode = Main.GetOrderCode(MarketData2.code);
Account1.OrderSell(EntryCode, 1, MarketData2.Bid(3), 0);
}
else //위 상황이 아니면 MarketData1 종목으로 진입
{
EntryCode = Main.GetOrderCode(MarketData1.code);
Account1.OrderSell(EntryCode, 1, MarketData2.Bid(3), 0);
}
}
//exitShort
if (Signal.signalKind == 4)
{
//직전 ExitShort신호의 이름
ExitName1 = ExitName;
//현재 ExitShort신호의 이름
ExitName = Signal.name;
//직전진입이MarketData1 이면
if (EntryCode == Main.GetOrderCode(MarketData1.code))
Account1.OrderBuy(EntryCode, 1, MarketData1.Ask(3),0);
//직전진입이MarketData2 이면
if (EntryCode == Main.GetOrderCode(MarketData2.code))
Account1.OrderBuy(EntryCode, 1, MarketData2.Ask(3),0);
}
}
즐거운 하루되세요
> 율담 님이 쓴 글입니다.
> 제목 : 안녕하세요.. 수식 문의드립니다.
> 예스트레이더로 매매를 하고 있습니다.
궁금한점이 있어서 문의 드립니다.
예스트레이더를 사용합니다. A종목의 특정 진입명 및 청산명이 발생했을때,
다음 진입신호에 B종목에 진입하고 싶습니다. 수식 부탁드립니다.
위에 인한 예스스탁의 성과를 시뮬레이션 하고 싶습니다.. 가능할까요.