커뮤니티
예스스팟 Q&A
착한이 님에 의해서 삭제되었습니다.
2015-05-29
0
글번호 223491
답변완료
혹시 중국 CSI300 지수선물차트 지원되나요?
중국 CSI300 지수선물차트 보고싶은데
가능한가요?
2015-05-28
1672
글번호 223490
답변완료
수식 부탁드립니다.
아래 스팟식은 검색종목이 잔고에 없으면 매수주문하는 식입니다. 아래 스팟식을 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 5번까지 피라미딩 진입되도록 수식 업그레이드 부탁드립니다.
이게 어렵다면 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 검색종목 잔고가 500000이 될때까지 진입되게 부탁드려요.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 600000);//간격(3600초 60분)
EntryMoney = 100000;
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Box-30");
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(Count,ItemList,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;
//현재가가 EntryMoney 미만이면 수량계산 이상이면 1주
if (Ob.current < EntryMoney)
EntryVol = Math.floor(EntryMoney/Ob.current);
else
EntryVol = 1;
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
2015-05-29
1800
글번호 223489
답변완료
수식 수정 부탁드립니다.
아래는 종목검색 후 검색된 종목이 잔고에 있으면 해당 종목을
시장가로 청산하는 스팟식을 작성해 주셨습니다. 아래 점선 아래부분은 매수주문식 같은데 필요 없는것 아닌가요?
검색된 종목이 잔고에 있으면 해당 종목을 시장가로 청산하는 스팟식으로만 간단하게 줄여주시기 바랍니다.
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;
//잔고종목이 검색종목에 있으면 시장가로 전량 매도
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
//잔고종목셋팅
Account1.SetBalance(i);
//검색종목들과 잔고종목의 종목코드 비교
//같은 종목코드 있으면 true 아니면 false
var cond = false;
for(var j = 0; j < Count; i++)
{
if (Account1.Balance.code == ItemList[j])
{
cond = true;
}
}
//true이면 매도
if (cond == true)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
----------------------------------------------------------------------------------------------------> 이 부분부터는 필요없는것 아닌가요?
//잔고셋팅해서 보유종목이 아니면
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;
EntryVol = Math.floor(EntryMoney/Ob.current);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
2015-05-28
1780
글번호 223488
선물꾼 님에 의해서 삭제되었습니다.
2015-05-27
1
글번호 223487
선물꾼 님에 의해서 삭제되었습니다.
2015-05-27
0
글번호 223486
답변완료
미완성신호 주문
안녕하세요~
다음 내용과 같이 수식 변경 부탁드립니다.
--------------------
< 현재 수식 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수
매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도
3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill
function Main_OnStart()
{
Main.MessageLog("시작");
incompleteN = 0;
}
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//09시52초 이전
if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000)
{
if (incompleteN == 0 && IncompleteSignal.signalKind == 1 &&
MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수
{
BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
BuyFill = 0;
}
if (incompleteN == 0 && IncompleteSignal.signalKind == 3 &&
MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도
{
SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
SellFill = 0;
}
}
< 변경요청 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경
--> 미완성신호가 발생하는 즉시
매수신호시 : 시초가-0.3 에 주문
매도신호시 : 시초가+0.3 에 주문
--> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지)
3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정
(즉, incompleteN = 1 이 아니면 5호가 정정주문)
4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용
//미완성신호 선주문
.....
...
.......
//09시54초 --> 09시52초까지 미체결시
if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시)
{
해당 매수주문 5호가 정정
}
if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시)
{
해당 매도주문 5호가 정정
}
-------------------------
이상입니다.
그럼 활기찬 시간되시기를 바라며,
감사합니다 !!
2015-06-03
1648
글번호 223485
난이 님에 의해서 삭제되었습니다.
2015-05-22
2
글번호 223481
답변완료
정정주문
수동이던 시스템이던 주문발생후 미체결주문이 있으면
5초후 자동정정으로 상대2호가에 주문내는 식 좀 부탁드립니다.
2015-05-21
1630
글번호 223478
답변완료
수식 부탁드립니다.
안녕하십니까? 매번 성의있는 답변 감사드립니다.
결국 롤오버 문제 때문에 예스스팟으로 넘어오기로 했습니다.
그리고 예스스팟은 예스랭귀지 처럼 차트에 시뮬레이션 해볼 수 없나요?
또는 어떻게 시뮬레이션 해볼 수 있나요?
부탁드릴 수식은,
해외선물이라 16시~16시를 하루로 잡아
매일 16시 시가를 기준으로 1% 상승 또는 하락하면 매수 또는 매도 진입.
(손절이나 청산이 되기 전에는 새로운 진입 신호는 무시.)
(모든 진입, 청산 및 손절은
실시간으로 신호가 발생하는 즉시 시장가로 진입 또는 청산.)
손절은 1%
트레일링스톱으로 최소 1% 수익 이후에 수익의 50%가 감소하면 청산.
매월 25일 20시에 강제청산 후 다음월 종목으로 롤오버.
단, 롤오버시 25일 16시 시가를 기준으로
롤오버 하는 가격이 손절가나 또는 트레일링 스탑에 의한 청산에 걸리면,
진입하지 않고 걸리지 않으면 25일 20시에 현재월 종목 강제청산 후,
다음월 종목을 20시에 시장가 진입.
2015-05-20
1554
글번호 223477