커뮤니티
예스스팟 Q&A
답변완료
시세 표기 오류 관련
테스트를 하던 중 이엠텍(091120) 종목 시세가 불일치 하는 현상 때문에 문의 합니다.
첨부 화면을 보면 2012년 차트 인데 8월3일 이전의 시세가 맞지 않네요
006060종목 등 다른종목도 일부 오류가 있음을 확인 했습니다
1. 어떤 종목이 오류가 있는지
2. 어떻게 고칠 수 있는지
3. 예스트레이더 3버전에도 동일한 오류가 있는지
답변 부탁합니다
2013-01-03
2300
글번호 221898
spot 주식선물 매매 오류(Balance.count)에 대한 문의
새해 복 많이 받으세요, spot 주식선물 오류에 대한 문의입니다.
아래의 함수로 손절값에 도달한 경우 주식선물을 매도청산(매수)하던 중에 계좌객체 A2.Balance.count의 값이 실제 매도 수량과 다른 값으로 나와 매수가 무한 반복 되었습니다.
스팟을 중단하고 재시작하니 A2.Balance.count가 제대로 된 값을 보여주는것을 Messagelog로 확인했습니다.
오류에 관련된 두가지 문의사항(요청) 드립니다.
1. 주식선물 매매시 계좌객체 Balance.count의 오류 가능성 확인 요청(드물게 발생함)
2. 주식 선물의 작은 거래량에 따른 미체결이 항시 발생함 이에 체결잔량을 확인하여 모두 처리하려는 목적에 부합하는 방법으로 아래 함수 SellOrder에 Balance.count 오류발생시 무한매수 방지를 위한 방어 코드를 함수에 추가.
1번을 100%보장한다면 요청2는 필요없겠지요 ^^
함수첨부드립니다.
=================================================================================
function SellOrder(종목명,목표가,손절가)
{
// 계좌확인을 매도갯수로 확인하게 설정.
A2.SetBalanceItem(종목명.code, 1);
// 손절
if (A2.Balance.count >0)
{
if ( 현재가>=손절가 && A2.Balance.count >0 )
{
IDB = Main.OrderBuy(A2.number, 종목명.code ,A2.Balance.count,종목명.Ask(1), 0);
Main.MessageLog("손절종목명= "+종목명.code+"손절가="+손절가+";"+A2.Balance.count+"주");
}
// 목표가 청산
if ( 현재가<=목표가 && A2.Balance.count >0 )
{
IDB = Main.OrderBuy(A2.number, 종목명.code ,A2.Balance.count,종목명.Ask(1),0);
}
}
2013-01-02
2363
글번호 221897
답변완료
선물 기준 옵션 매매 수식 수정부탁드립니다.
예스스탁님이 올려주신 선물 신호 기준 옵션가격 3보다 작은 가격중 3에 가장 가까운 가격의 옵션종목을 매매하는 수식입니다.
여기서 실제 주문을 넣어보니 옵션이 아니라 선물 매매가 이루어 지는 듯합니다.
옵션 주문 코드를 따로 변수로 받아야 하는것인지. 어떤것이 잘못된것이지 설명과 함께 수정 부탁드립니다.
var CPrice = new Array(101);
var CCode = new Array(101);
var PPrice = new Array(101);
var PCode = new Array(101);
var MaxCall;
var MaxCallCode;
var MaxPut;
var MaxPutCode;
function c1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
//ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리
for(var i = -50; i <= 50; i++)
{
if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0)
{
CPrice[50+i] = Option.GetCurrent(0,i);
CCode[50+i] = Option.GetATMCallRecent(i);
}
else
{
CPrice[50+i] = -1;
CCode[50+i] = -1;
}
if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0)
{
PPrice[50+i] = Option.GetCurrent(1,i);
PCode[50+i] = Option.GetATMPutRecent(i);
}
else
{
PPrice[50+i] = -1;
PCode[50+i] = -1;
}
}
//저장된 CPrice, PPrice값중 최고값 계산
MaxCall = -1;
MaxCallcode = -1;
MaxPut = -1;
MaxPutcode = -1;
for(var A = 0; A <= 100; A++)
{
if (CPrice[A] > MaxCall)
{
MaxCall = CPrice[A];
MaxCallcode = CCode[A];
}
if (PPrice[A] > MaxPut)
{
MaxPut = PPrice[A];
MaxPutcode = PCode[A];
}
}
Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode);
Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode);
//--올려주신 수식에서 종목코드 MaxCallcode 만 넣었습니다... 여기서 잘못된거 같은데..
Main.OrderBuy(a1.number, Option.GetATMCallRecent(MaxCallcode), 1, 0, 1)
2013-01-02
2289
글번호 221896
답변완료
증거금 부족이 나옵니다.
예스스탁님이 올려주신 선물 신호 기준 옵션가격 3보다 작은 가격중 3에 가장 가까운 가격의 옵션종목을 매매하는 수식입니다.
여기서 실제 주문을 넣어보니 옵션이 아니라 선물 매매가 이루어 지는 듯합니다.
옵션 주문 코드를 따로 변수로 받아야 하는것인지. 어떤것이 잘못된것이지 설명과 함께 수정 부탁드립니다.
.
실험 적용은 되는데 자동 매매시 증거금 부족으로 매매가 되지 않습니다.
현재 계좌에 미청산 계약이 있는관계로 매매는 되는 상황이지만 .실제 증거금은 약 300만원 정도만 계좌에 들어있습니다.
선물 챠트 기준으로 옵션을 거래하는 수식인데 거래 종목에는 선물로 잡히는거 같습니다.
옵션 수동 매매로는 주문이 되는 상황으로.. 증거금 문제는 아닌거 같은데.. 참고로
하이투자 사용하고 있습니다.
설명 부탁드립니다.
var CPrice = new Array(101);
var CCode = new Array(101);
var PPrice = new Array(101);
var PCode = new Array(101);
var MaxCall;
var MaxCallCode;
var MaxPut;
var MaxPutCode;
function Main_OnStart()
{
Main.MessageLog("시작");
}
//ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리
for(var i = -50; i <= 50; i++)
{
if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0)
{
CPrice[50+i] = Option.GetCurrent(0,i);
CCode[50+i] = Option.GetATMCallRecent(i);
}
else
{
CPrice[50+i] = -1;
CCode[50+i] = -1;
}
if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0)
{
PPrice[50+i] = Option.GetCurrent(1,i);
PCode[50+i] = Option.GetATMPutRecent(i);
}
else
{
PPrice[50+i] = -1;
PCode[50+i] = -1;
}
}
//저장된 CPrice, PPrice값중 최고값 계산
MaxCall = -1;
MaxCallcode = -1;
MaxPut = -1;
MaxPutcode = -1;
for(var A = 0; A <= 100; A++)
{
if (CPrice[A] > MaxCall)
{
MaxCall = CPrice[A];
MaxCallcode = CCode[A];
}
if (PPrice[A] > MaxPut)
{
MaxPut = PPrice[A];
MaxPutcode = PCode[A];
}
}
Main.MessageLog("콜가격:"+MaxCall+"종목코드:"+MaxCallcode);
Main.MessageLog("풋가격:"+MaxPut+"종목코드:"+MaxPutcode);
//-----아래 주문 부분만 수정해서 붙인겁니다. 옵션 코드를 MaxCallcode 로 넣었는데
// 이 부분이 적용이 안되고 선물로 주문이 들어가는것은 아닌지 생각됩니다...
//증거금 부족액이 약 1400만원 정도로 잡히는데 제 계좌에 약 370만 있으니 증거금이 부
//족하다면 약 1200 만원 정도로 잡혀야 하는데..
// 수식이 잘못된거 같습니다.
function c1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
a1.OrderBuy(Option.GetATMCallRecent(MaxCallcode), 1, 0, 1)
}
if (Signal.signalKind == 2)
{
a1.OrderSell(Option.GetATMCallRecent(MaxCallcode), 1, 0, 1)
}
}
2013-01-02
2296
글번호 221895
예시스 님에 의해서 삭제되었습니다.
2013-01-02
9
글번호 221893
답변완료
예스트레이더 3.1에서 4.0으로 ...
예스트레이더 3.1에서 4.0으로 변경되었다고하여
3.1에서 사용중이던 수식들을 4.0으로 옮기려하는데..
그냥 폴더만 복사해서 넣으면 되는건지요?
어떤 어떤 폴더를 복사해야하는건지..자세한 설명 부탁드립니다.
수고하세요!
2013-01-01
2385
글번호 221892
답변완료
예스스팟에 관하여
4.0버젼을 사용하고 있는데 예스스팟이라는 것이 있는데 이것은 무엇이며 어떻게 이용하는지 전혀 모르겠습니다. 궁금한 사항은 어디서 어떻게 알아 볼 수 있나요?
2013-01-01
2399
글번호 221891
답변완료
질문 있습니다.
선물 분봉이하 즉 틱,초봉 데이터가 현재 2012년 1월부터 밖에 없습니다.
그 이전 데이터는 언제쯤 업데이트가 가능한지 궁금해서 문의드립니다.
1년 남짓 데이터로는 시뮬레이션이 한계가 있어서 그렇습니다.
항상 감사드립니다.
2012-12-28
2465
글번호 221888
답변완료
관심종목 관리 오류
다수의 파워종목검색 결과를 내보내기 한 다음 종목관리에서 확인해 보면,
동일 종목이 중복되어 있습니다.(불러오기를 하면 중복은 제거됨)
확인후 빠른 수정 부탁 드립니다.
감사합니다.
2012-12-27
2513
글번호 221887
답변완료
총거래대금 단위 오류 수정 요청
안녕하세요?
신버전 파워종목검색에서 "총거래대금"의 단위 (억)을 (천)으로 수정되어야할 것 같습니다. 확인부탁드립니다.
감사합니다.
2012-12-24
2503
글번호 221880