답변완료
수식 문의 드립니다.
안녕하세요.
예스트레이더를 이용하여 시스템트래이딩 매매를 하고자 합니다.
아래와 같은 식으로 구현 부탁드립니다.
바로 붙여넣서 사용할 수 있도록 전체 수식 부탁드립니다.( 사용을 잘 못합니다.^^)
또한 신용매매와 현금 매매를 따로 구분하여 주문할 수있나요.. 물론 매도도 같은 방법을 원합니다.
감사합니다.
● 매수 대상종목( 코스피 코스닥 전체 종목 중 11번 항목 제외)
지표 내용
1 [일]거래대금(일:백만, 분:천) 500이상 999999999이하
2 [일]거래량:50000이상 999999999이하
3 영업이익률:최근3년평균 1% 이상
4 가격-이동평균 비교:[일]0봉전 (종가 20)이평 < 종가
5 주가이평배열(3):[일]0봉전 20이평 > 60이평
6 주가이평추세:[일]0봉전 (종가 30)이평 상승추세유지 1회 이상
7 0봉전 20이평값이 1봉전 20이평값보다 크고 1봉전 20이평값보다 10봉전 20이평값이 클때( 10봉연속이 아닌 바로 10봉 전 값과 0봉전 값의 비교 입니다.)
8 주가등락률:[일]3봉전(중) 저가대비 0봉전 종가등락률 15%이상 --> (일경우 제외한다 라는 식)
9 1일중 첫하한 --> (일경우 제외한다 라는 식)
10 3시 21분 주문 (종가 매매)
11 관리.투자주의, 증거금(100), 불성실공시기업, 투자경고/위험 ,우선주,거래정지, 정리매매 etn,스팩, etf, 환기종목 ,단기 과열종목 --> (일경우 제외한다 라는 식)
● 매도 (장중 발생 즉시 매도)
지표 내용
I 주가이평추세:[일]0봉전 (종가 25)이평 하락추세유지 1회 이상
J 주가이평추세:[일]0봉전 (종가 10)이평 하락추세유지 1회 이상
G 주가이평추세:[일]0봉전 (종가 60)이평 하락추세유지 1회 이상
K 주가이평추세:[일]0봉전 (종가 40)이평 하락추세유지 1회 이상
H 주가이평추세:[일]0봉전 (종가 20)이평 하락추세유지 1회 이상
F 주가이평돌파:[일]0봉전 (종가 60)이평 (종가 90)이평 골든크로스
((I or J) and (G or K) and H) or F
2019-12-11
3169
글번호 225111
답변완료
범위 수식
안녕하세요
스팟에서 다음 수식을 간략히 할 수 있는 방법이 있으면 부탁드립니다.
(282.25 < MarketData1.current && MarketData1.current < 282.75) ||
(279.75 < MarketData1.current && MarketData1.current < 280.25) ||
(277.25 < MarketData1.current && MarketData1.current < 277.75)
위와 같이 범위가 2.5 단위로 반복되는 수식이 있습니다.
범위는 최고 (399.75 < MarketData1.current && MarketData1.current < 400.25) 이고,
최저 (99.75 < MarketData1.current && MarketData1.current < 100.25) 입니다
1) 위의 내용을 Frange 라는 변수를 사용하여,
Frange 가 true 일 때 작동하라는 수식으로 변경하고 싶습니다
2) YT에 9시 이전에 접속하였을 경우에만 수식이 작동하도록 하는 방법이 있을지요?
(즉, 9시 이전에는 재접속해도 수식 작동하고,
9시이후에는 비정상 종료 등으로 장중 YT에 재접속할 경우 수식 작동 안함)
3) '월물옵션이 1월물이 아니라면' 수식 작동
function Main_OnStart()
{
Main.MessageList("MarketData1.current 범위 test");
Main.SetTimer(1, 60*1000);
}
function Main_OnTimer(nEventID)
{
var d = new Date();
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true)
{
Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current);
}
}
이상입니다
감사합니다 !!
2019-12-18
3252
글번호 225109
답변완료
신용매도방법 질문입니다
일전에 매도하는방법을 이렇게 답변주셨는데
function Main_이벤트
{
var num = Account1.GetTheNumberOfBalances();
for (var i = 0; i < num; i++)
{
Account1.SetBalance(i);
if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 0)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);
}
if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 1)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,1,Account1.Balance.loanDate);
}
if (Account1.Balance.count > 0 && Account1.Balance.loanKind == 3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,3,Account1.Balance.loanDate);
}
}
}
위방법 말고, 먼저 현금으로 산 수량을 매도시키고, 신용으로 산 수량을 매도시키면 안되나요?
계좌에는 서로 섞여서 매수가 진행되는지 아니면
현금으로 산놈들 따로 신용으로 산놈들 따로 되서 매도가 가능할까요
복잡하네요 ㅠㅜㅜㅜ
function inc150_OnRiseSignal(Signal){
var slbn, sbn;
if (Signal.signalKind == 1){
Main.OrderBuy(A1.number,ind150.code(A1.GetBalanceETCinfo(20)-
A1.GetBalanceETCinfo(18))/d150.Ask(3),ind150.Ask(3),3,3);
//(최대주문가능금-현금가능금/ 매수호가) 로 나눈 값으로 매수
slbn=A1.count; //slbn : 신용으로 산 수량
Main.OrderBuy(A1.number,ind150.code,A1.GetBalanceETCinfo(18)/d150.Ask(3),ind150.Ask(3),3);
sbn= A1.count-albn; // sbn : 신용으로 산수량을 제외한 수량(현금잔고)
}
if (Signal.signalKind == 3){
Main.OrderSell(A1.number,d150.code,sbn,Bid(3),1);
Main.OrderSell(A1.number,d150.code,slbn,Bid(3),1,3,0);
Main.MessageLog("매도 "+Signal.signalKind);
}
이렇게 구분해서 했는데.. 매수하고 매도할때 어떻게 해야할지 모르겠네요
도와주시면 감사합니다 ㅠㅜㅜㅜ
2019-12-05
3311
글번호 225107