커뮤니티
예스스팟 Q&A
답변완료
시그널이 한번만 잡혀요
차트 일봉상 시그널이 발생하면 OnRiseSignal로 받게 설정했는데
처음엔 전날 미리 실행시킨 스팟이 돌아가면서 오늘 신호를 받는데
전략을 한번 끄고 다시 실행시키면 신호를 받지 못합니다
이유 좀 설명 부탁뜨립니다
2014-11-10
1441
글번호 223229
답변완료
스팟식 문의드립니다.
1.아래는 게시판에 있는 스팟식입니다. 종목검색후 자동매매로 연결하는데... 종목검색후 예수금의 10%가 아니라 1%씩 진입되도록 수정부탁드립니다. 그리고 진입종목중에서 A조건 만족시 청산하는 스팟식도 추가부탁드립니다.
2. 그리고 특정 진입청산식을 가지고 10분/20분30분/일봉에서 진입청산되도록 수식이 가능한가요?
3. 아래 수식에 아래에 3번 질문 있습니다. 부탁드립니다!
수식은 아래 흐름으로 동작합니다.
5분단위로 사용자검색조건 실행하고
검색이 완료되어 검색된 종목이 있으면 잔고에 없는 종목에 한해서
1초단위로 해당종목의 종목객체를 생성해서 매도5호가로 주문을 집행합니다.
예수금은 스팟시작시에 예수금을 가져와 10%의 금액으로 주문합니다.
스크립트 객체화면에는 계좌객체(Account1)만 추가하시면 됩니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10);
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
Req = 0;
}
if (nEventID == 2 && Req < Count)
{
Main.ReqMarketData(ItemList[Req], 0, 0);
Req = Req+1;
Main.MessageList(ItemList[Req-1],Req);
}
}
//종목검색이 완료
function Main_OnRcvItemList(aItemList, nCount)
{
//검색종목수가 1개 이상이면
if (nCount >= 1)
{
ItemList = aItemList;
Count = nCount;
//잔고셋팅해서 보유종목이 아니면
Account1.SetBalanceItem(ItemList[0],0);
Main.MessageList(ItemList,Count,Account1.Balance.count);
if (Account1.Balance.count == 0)
{
//종목객체 생성 요청
Req = 1;
Main.ReqMarketData(ItemList[0], 0, 0);
Main.SetTimer(2, 1000);//간격(1초)
}
}
}
//요청한 종목객체가 생성되면
function Main_OnRcvMarketData(MarketData)
{
var Ob = MarketData;
var EntryVol = 0;
//1주 단위일 경우
if (Ob.tradeUnit == 1)
EntryVol = Math.floor(EntryMoney/Ob.current);
//10주 단위일 경우
if (Ob.tradeUnit == 10)
EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/Ob.Ask(5))/10)*10);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
3. 아래는 장전 동시호가에 주문들어가는 스팟식인데요. 계좌잔고를 확인하고 선물이 매수포지션이면 풋등가옵션 1개 매수, 선물이 매도포지션이면 콜등가옵션 1개 매수 들어가도록 수식 부탁드립니다.
#스크립트 객체설정
#계좌객체 추가 - 속성에서 객체명 Account1로 지정하고 계좌번호 지정
#종목객체 추가 - 속성에서 주문할 종목지정
#스팟 시작시에 타이머 셋팅
function Main_OnStart()
{
Start = 0;
Main.SetTimer(1, 1000);
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//8시 58분이 되면
if (Start == 0 && nEventID == 1 && HHMMSS >= 85800)
{
Strat = 1;
Main.KillTimer(1);
//종목객체 MarketData1로 지정한 종목 시강가로 1주 매수
Account1.OrderBuy(MarketData1.code, 1,0,1)
}
}
2014-11-21
1536
글번호 223228
피셔 님에 의해서 삭제되었습니다.
2014-11-06
16
글번호 223227
hjkang철인 님에 의해서 삭제되었습니다.
2014-11-06
5
글번호 223226
무명 님에 의해서 삭제되었습니다.
2014-11-08
37
글번호 223217
답변완료
선물 3개의 틱챠트에 각각 3개 시스템이 구동됩니다.
선물 3개의 틱챠트에 각각 3개 시스템이 구동됩니다.
시스템 3개가 구동되는 선물챠트는 100틱 200틱 300틱
시스템명 : system-A system-B system-C
즉 3개의 시스템(예스랭귀지로 작성)이
틱수가 다른 3개의 챠트에서 각각 구동될때
3개 전부가 동일 방향일때 마지막 신호에 진입합니다.
예를들어
100틱 챠트에서 system-A 가 09:00:00 일때 255.00 에서 매도신호 발생(매수 --> 매도)
300틱 챠트에서 system-C 가 10:00:00 일때 254.50 에서 매도신호 발생(매수 --> 매도)
200틱 챠트에서 system-B 가 11:30:00 일때 255.50 에서 매도신호 발생(매수 --> 매도)
한다면 예스스팟을 이용해 동일방향을 완성한 3번째 신호가 발생한 200틱 가격인
255.50 에서 실제 계좌상의 매도진입을 합니다.
이렇게 진입한 신호는 3개중 하나라도 가장 먼저 반대신호 즉 매수(매도 ---> 매수)신호
로 청산합니다. 위의 예에서 매도 진입한 후 14:00:00 일때 300틱 챠트의
시스템(system-C)이 253.00 에서 매수 진입신호가 나왔다면 실 계좌에서
직전 255.50 매도진입 한 것을 253.00 값으로 청산합니다.
이런 패턴을 계속하여 포지션 시스템으로 운용하는 예스스팟 수식을 부탁드립니다.
감사합니다.
2014-11-04
1212
글번호 223216
답변완료
계좌잔고종류 구분방법
안녕하세요
계좌잔고객체에서 불러온 잔고들의 종류(즉, 선물인지 옵션인지 주식인지등)를
어떻게 알 수 있나요?
참고로 다음과 같이 사용하려 합니다
for(var i = 0; i < 계좌객체.GetTheNumberOfBalances(); i++)
{
계좌객체.SetBalanceIndex(i);
if(잔고가 선물이면 )
{ ~ }
else if(잔고가 옵션이면)
{ ~ }
else if(잔고가 주식이면)
{ ~ }
}
감사합니다
2014-11-04
1342
글번호 223215
피셔 님에 의해서 삭제되었습니다.
2014-10-31
0
글번호 223214
sonamoo 님에 의해서 삭제되었습니다.
2014-10-24
8
글번호 223212
답변완료
문의드립니다.
안녕하세요.
Yestrader로 주식선물일봉을 이용한 포지션 전략에서 보유중인 전종목을 만기일날 롤오버하는
YesSpot수식좀 부탁드립니다.
Yestrader의 경우 만기일 전종목 청산하고 익일 재진입하는 전략을 쓰고 있는데요, 이럴경우
손익에 왜곡이 있어서 만기일날 전종목교체하는 방법을 사용하고 싶습니다.
보유종목의 개수에 맞춰서 만기일 특정시간에 전종목을 다음물로 롤오버하되, 시간은 시스템의
부하를 방지하기 위해 종목마다 다르게 가져가고자 합니다.
감사합니다.
2014-10-20
1491
글번호 223208