답변완료
[파워종목검색] 구버전과 신버전 결과가 다름
다음과 같은 동일한 검색식을 장종료후에 구버전과 신버전에서 실행했을때,
검색 결과값이 다르게 나오며 구버전 결과가 맞는 것으로 보입니다.
확인 부탁 드립니다.
Input : BB80Period(80), BB240Period(240), D(2);
Variable : BB80up(0), BB240up(0);
BB80up = BollBandUp(BB80Period,D);
BB240up = BollBandUp(BB240Period,D);
If (BB80up > BB240up) and
(CountIF(C > BB80up, 5) >= 4) and (C < BB80up*1.05 and C > BB80up*0.97 and C > BB240up) Then
{
Find(1);
}
2013-01-04
2317
글번호 221916
답변완료
스팟 주문오류입니다,.
예스트레이더 로는 시스템 매매가 가능한 상태입니다.
하지만 예스스팟으로 주문할시 증거금 부족으로 나옵니다..
왜그런가요.
.
<오류메시지>
[cd_ord_normal]부족액 위탁:16801980, 현금:16801980: sqlnum 20003
매수<0000-0000-00> 종목:KR4201H12703 수량:1 가격:0.00 주문유형 : 시장가
<적용 수식>
선물챠트 객체에서 신호를 받아와서 atm 옵션 가격중 1보다 작고 가장 근접한 옵션 을 매수 청산 하는 식을 시험 하려고 스팟 자동 매매로 돌려보니... 증거금 부족메시지가 나옵니다
현재 증거금은 2백 정도만 들어가 있는 상태로.. 미결제 계약을 항상 1개 를 남겨 두기에 .. 시스템 매매 거래 가능한 상태입니다.메시지를 분석해 보니.. 옵션 종목으로 매매가 이루어지는 것은 맞는거 같은데.. 증거금 부족 때문인지 아니면.... 다른 이유가 있는것이인지 알려주세요.
<수식내용>
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)
{
//ATM 위 행사가 갯수
UNum = Option.uppersATM;
//ATM 위 행사가 갯수
LNum = Option.lowersATM;
//배열변수 준비(가격, 종목코드)
CallCode = new Array(UNum+LNum+1);
PutCode = new Array(UNum+LNum+1);
CallPrice = new Array(UNum+LNum+1);
PutPrice = new Array(UNum+LNum+1);
//3.0이하의 가격을 가지는 콜종목은 해당 값과 종목코드 저장
//3.0을 초과하는 콜종목은 가격과 종목코드를 모두 -1 처리
for (var i = -LNum; i <= UNum; i++)
{
if (Option.GetCurrent(0, i) <= 1.0)
{
CallPrice[i+LNum] = Option.GetCurrent(0, i);
CallCode[i+LNum] = Option.GetATMCallRecent(i);
}
else
{
CallPrice[i+LNum] = -1;
CallCode[i+LNum] = -1;
}
Main.MessageLog(i+"콜종목코드:"+CallCode[i+LNum]+"/가격:"+CallPrice[i+LNum]);
}
//3.0이하의 가격을 가지는 풋종목은 해당 값과 종목코드 저장
//3.0을 초과하는 풋종목은 가격과 종목코드를 모두 -1 처리
for (var ii = -UNum; ii <= LNum; ii++)
{
if (Option.GetCurrent(1, ii) <= 3.0 )
{
PutPrice[ii+UNum] = Option.GetCurrent(1, ii);
PutCode[ii+UNum] = Option.GetATMPutRecent(ii);
}
else
{
PutPrice[ii+UNum] = -1;
PutCode[ii+UNum] = -1;
}
Main.MessageLog(ii+"풋종목코드:"+PutCode[ii+UNum]+"/가격:"+PutPrice[ii+UNum]);
}
//각 배열에 저장된 값중 가장 큰 값을 찾음
var CC = -1;
var CallOrderCode = -1;
for (var iii = -LNum; iii <= UNum; iii++)
{
if (CallPrice[iii+LNum] > CC)
{
CC = CallPrice[iii+LNum];
CallOrderCode = CallCode[iii+LNum]
}
}
var PP = -1;
var PutOrderCode = -1;
for (var iiii = -UNum; iiii <= LNum; iiii++)
{
if (PutPrice[iiii+UNum] > PP)
{
PP = PutPrice[iiii+UNum];
PutOrderCode = PutCode[iiii+UNum];
}
}
Main.MessageLog("--------------------------------------------");
Main.MessageLog("콜주문종목코드:"+CallOrderCode+"/가격:"+CC);
Main.MessageLog("풋주문종목코드:"+PutOrderCode+"/가격:"+PP);
if (Signal.signalKind == 1)
{
Main.OrderBuy(a1.number, CallOrderCode, 1, 0, 1);
}
if (Signal.signalKind == 2)
{
Main.OrderSell(a1.number, CallOrderCode, 1, 0, 1);
}
}
2013-01-04
2565
글번호 221908
답변완료
다음 내용 확인 부탁드립니다.
안녕하세요~
YesSpot관련 다음 내용 확인 부탁드리겠습니다.
1) 동일계좌에 정정,취소주문 Spot시스템 A와 B가 적용되었을 때,
--> 정정, 취소가 A와 B 각각에 대하여 다른 orderNum이 생성되어
별개로 작동되는지요?
(A와 B 모두 id와 idNum의 변수명이 같은 상태임)
--> 이때 만약 장마감동시호가에서 미체결 잔량 전체에 대한 청산 Spot시스템을
적용하면, 이경우는 A와 B 시스템과 상관없이 해당계좌에 남아있는
미체결 잔량 전체에 대하여 청산이 이루어지는지요?
즉 Spot system이 몇개 적용되었건 해당계좌 전체 잔량에 대하여 청산되는지요?
2) OrderReplacePrice 또는 OrderCancel 함수를 사용하였을 때,
앞서 일부 체결이 있다면 미체결 수량에 대하여만 정정 또는 취소가 발생하는지요?
3) 2)와 관련하여 외부변수로 수량을 1계약으로 지정하였을 때,
정확성을 위하여 OrderReplacePrice 함수보다 OrderReplace 함수를 사용하는 것이
더 좋은지요?
이상입니다.
그럼 즐거운 주말되시기 바랍니다.
감사합니다 !!!
2013-01-04
2283
글번호 221906
답변완료
시스템/지표식 문의 드립니다.
신호를 만들어 나가다가 맞는 거 같은데 아무리 해도 이상하게 나와서 도움을 받고자 적습니다.
먼저 그림을 보시면,
제일 위가 기본종목인 선물지수
그 아래가 타종목, Data5
그 아래가 외국인 선물 순매수금액 Data4 입니다.
'테스트1' 이라고 보이는 지표가
선물지수에서 시가에 해당할 때의 Data5의 시가를 선으로 나타낸 것입니다.
제일 아래 테스트2는 다음의 수식으로 표현된 것입니다.
var : barnumber(0);
barnumber = dayindex();
( 타종목5는 8시 40분부터 봉이 형성되어서 변수로 받아서 처리했습니다.
data5(o[dayindex])로 하면 data5의 시작봉의 시가를 가져오는 거 같아서요 )
if !( data4(c) - data4(o) < 0 and c - o < 0 ) and
( data5(o[barnumber]) < data5(c) )
and ( data4(c) > data4(c[dayindex]) and data4(c) > 0 )
then
plot1(C," ",red);
위 식에서
data5(o[barnumber]) < data5(c) 과
data4(c) > data4(c[dayindex] 은
data5 타종목의 시작가보다 data5 타종목의 현재종가가 크다라는 것과
data4 타종목의 종가가 data4 타종목의 시작봉의 종가보다 크다라는 뜻이며
위 조건을 만족할 때 테스트2에서 빨간 점을 나타나게 한 것입낟.
하지만, 빨간 점이 찍힌 위치를 보면 어디에도 data5의 현재종가가 data5의 시작봉의 종가나 시작봉의 시가보다 크지 않습니다.
뭐가 잘못되었는지 궁금합니다.
여하튼 제 의도는 선물지수의 시가일 때의 data5의 시가나 종가를 비교할려고 합니다.
부탁드립니다. 감사합니다.
2013-01-04
2449
글번호 221905
답변완료
미완성 신호객체에 관해서
미완성 신호를 시험삼아 적용해 보니... 예비 신호가 뜰대 신호가 나가는것이 아니라 봉이 완성되어야 매매가 되는것 같은데...제가 미완성 신호 객체에 대해서 잘못알고 있는것인지
알고 싶습니다..아래는 시험삼아... 해본건데...수식이맞는건지도 모르겠네요.. 일단 신호는 매매는 되는것같습니다.
function 챠트1_OnRiseIncompleteSignal(IncompleteSignal)
{
if (IncompleteSignal.signalKind == 1)
{
Main.OrderBuy(a1.number, MarketData2.code, 1, 0, 1)
}
if (IncompleteSignal.signalKind == 2)
{
Main.OrderSell(a1.number, MarketData2.code, 1, 0, 1)
}
}
미완성 신호객체에 대해 설명가 사용법 좀 알려주세요.
2013-01-03
2470
글번호 221904