안녕하세요~
답변 잘 받았습니다.
정정주문과 관련하여 추가로 몇가지 질문이 있습니다.
function Chart1_OnRiseSignal(Signal)
{
if (Signal == 3)
Account1.OrderSell(MarketData1.code, Vol, Signal.price, 0);
}
1) 위의 수식에서 YT의 PriceScale 함수를 추가하고 싶은데 가능한지요?
부연하면 'Signal.price - PriceScale'과 같은 의미로 사용하려면
YesSpot에서 PriceScale에 해당하는 함수가 무엇인지요?
2) 위의 수식을 수정한 내용이 맞는지 확인 부탁드립니다.
차트에서 매도신호 발생시 만약 1호가매수잔량 > 1호가매도잔량 상태이면 매도1호가 매도
1호가매수잔량 > 1호가매도잔량 상태가 아니라면 완성봉 가격으로 매도
(물론 경우에 따라서 두가지 경우의 가격이 같을 수도 있겠습니다)
Sellid 와 Sellfill은 이후 정정을 위한 변수입니다.
function Chart1_OnRiseSignal(Signal)
{
if (Signal == 3)
{
if (MarketData1.BidAmount(1) > MarketData1.AskAmount(1))
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, MarketData1.Ask(1), 0);
Sellfill = 0;
}
else
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, Signal.price, 0);
Sellfill = 0;
}
}
}
3) 현재 신호발생시의 가격으로 주문후 10초후까지 체결이 안되면 5호가 아래로
정정주문을 내는 것을 시험test중입니다. (MarketData1.Bid(5)로 정정 처리)
그런데 시험test이므로 실제 체결이 안되는 관계로
10초 단위로 계속 정정주문이 발생하는데,
시험적용 상태에서도 실거래에서와 같이 test해 볼 수 있는 방법은 없는지요?
(즉 시험적용 상태에서도 정정가격이 체결조건을 만족하면 다음 신호까지
추가로 정정주문 발생하지 않도록 함)
이후 정정수식은 하이투 교육시 사용하는 교재의 정정주문 예제에 준하여 작성된 상태입니다.
4) 예스스팟은 언제쯤 모의투자가 가능할까요?
이상입니다.
그럼 즐거운 주말되시기 바라겠습니다.
감사합니다 !!!
답변 1
예스스탁
예스스탁 답변
2012-12-26 19:16:01
안녕하세요
예스스탁입니다.
1.
차트에서는 해당종목의 PriceScale을 리턴받으실수 없고
차트종목과 같은 종목을 종목객체로 추가하신 후에
아래와 같이 작성해 사용하시면 됩니다.
function Chart1_OnRiseSignal(Signal)
{
var PriceScale = MarketData1.GetTickSize(MarketData1.current);//1틱
if (Signal.signalKind == 3)
Account1.OrderSell(MarketData1.code, Vol, Signal.price-PriceScale , 0);
}
2.
예 맞습니다.
3.
타이머를 셋팅하고 한번말 동작하게 하셔야 합니다.
아래식 참고하시기 바랍니다.
var Sellid;
var Sellnum;
var Sellfill;
function Chart1_OnRiseSignal(Signal)
{
if (Signal == 3)
{
if (MarketData1.BidAmount(1) > MarketData1.AskAmount(1))
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, MarketData1.Ask(1), 0);
Sellfill = 0;
Main.SetTimer(1, 10000);//1번 타이머 10초 간격으로 동작
}
else
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, Signal.price, 0);
Sellfill = 0;
Main.SetTimer(1, 10000);//1번 타이머 10초 간격으로 동작
}
}
}
//주문응답 수신시 주문번호 저장
function Main_OnOrderResponse(OrderResponse)
{
if (Sellid == OrderResponse.orderID)
Sellnum = OrderResponse.orderNum;
}
//타이머 이벤트 발생
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//1번 타이머 동작 중지
Main.KillTimer(1);
//주문번호(Sellnum)의 미체결 내역을 셋팅
Account1.SetUnfillOrderNumber(Sellnum);
//미체결내역의 수량이 0보다 크면(미체결이 있음)
if (Account1.Unfill.count > 0)
// 정정주문
Account1.OrderReplacePrice(Sellnum, MarketData1.Bid(5));
}
}
4.
모의투자는 조금 시일이 걸리것 같습니다.
내년 상반기 중으로 제공될 예정입니다.
즐거운 하루되세요
> 새로운세상 님이 쓴 글입니다.
> 제목 : [386]관련 추가 질문
> 안녕하세요~
답변 잘 받았습니다.
정정주문과 관련하여 추가로 몇가지 질문이 있습니다.
function Chart1_OnRiseSignal(Signal)
{
if (Signal == 3)
Account1.OrderSell(MarketData1.code, Vol, Signal.price, 0);
}
1) 위의 수식에서 YT의 PriceScale 함수를 추가하고 싶은데 가능한지요?
부연하면 'Signal.price - PriceScale'과 같은 의미로 사용하려면
YesSpot에서 PriceScale에 해당하는 함수가 무엇인지요?
2) 위의 수식을 수정한 내용이 맞는지 확인 부탁드립니다.
차트에서 매도신호 발생시 만약 1호가매수잔량 > 1호가매도잔량 상태이면 매도1호가 매도
1호가매수잔량 > 1호가매도잔량 상태가 아니라면 완성봉 가격으로 매도
(물론 경우에 따라서 두가지 경우의 가격이 같을 수도 있겠습니다)
Sellid 와 Sellfill은 이후 정정을 위한 변수입니다.
function Chart1_OnRiseSignal(Signal)
{
if (Signal == 3)
{
if (MarketData1.BidAmount(1) > MarketData1.AskAmount(1))
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, MarketData1.Ask(1), 0);
Sellfill = 0;
}
else
{
Sellid = Account1.OrderSell(MarketData1.code, Vol, Signal.price, 0);
Sellfill = 0;
}
}
}
3) 현재 신호발생시의 가격으로 주문후 10초후까지 체결이 안되면 5호가 아래로
정정주문을 내는 것을 시험test중입니다. (MarketData1.Bid(5)로 정정 처리)
그런데 시험test이므로 실제 체결이 안되는 관계로
10초 단위로 계속 정정주문이 발생하는데,
시험적용 상태에서도 실거래에서와 같이 test해 볼 수 있는 방법은 없는지요?
(즉 시험적용 상태에서도 정정가격이 체결조건을 만족하면 다음 신호까지
추가로 정정주문 발생하지 않도록 함)
이후 정정수식은 하이투 교육시 사용하는 교재의 정정주문 예제에 준하여 작성된 상태입니다.
4) 예스스팟은 언제쯤 모의투자가 가능할까요?
이상입니다.
그럼 즐거운 주말되시기 바라겠습니다.
감사합니다 !!!