첨부 이미지
그림1
var BuyPositionCount;
var SellPositionCount;
var BID, SID;
var Buy_price,Sell_price,Center_price;
var C1_low,C1_high,C1_current;
function Main_OnStart()
{
Main.MessageLog("시작");
Main.MessageLog(M1.code);
Main.SetTimer(1, 5000);
Buy_price = 0; Sell_price = 0;
BID = 0; SID = 0;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
BuyPositionCount = A1.GetTotalCount(0, 2); // 매수수량 체크
SellPositionCount = A1.GetTotalCount(0, 1); // 매도수량체크
C1_OnBarAppended();
if ( SellPositionCount == 0 && SID == 0 )
{
SID = A1.OrderSell(M1.code, Vol,Sell_price,1);
}
if ( SID > 0 && Sell_price != ) {
SID = A1.OrderReplacePrice(SID,Sell_price);
}
}
}
function C1_OnBarAppended(ndata)
{
var UP_exCenterZone = C1.GetIndicatorData("3L chart - 480", 6, 0);
var DN_exCenterZone = C1.GetIndicatorData("3L chart - 480", 7, 0);
var Center = C1.GetIndicatorData("3L chart - 480", 1, 0);
var bar_close = C1.GetClose(1,0);
var bar_high = C1.GetHigh(1, 0);
var bar_low = C1.GetLow(1, 0);
Buy_price = UP_exCenterZone;
Sell_price = DN_exCenterZone;
Center_price = Center;
C1_low = bar_low;
C1_high = bar_high;
C1_current = bar_close;
}
주문을 최초로 넣고 현재 진입조건가격이 최초 주문했던 가격과 비교해서 달라질 경우
어떻게 해야하는지 모르겠습니다.
도움좀 부탁드리겠습니다.
답변 1
예스스탁
예스스탁 답변
2022-07-28 16:55:38.0
안녕하세요
예스스타입니다.
정정주문을 할 경우 정정할 가격이 기준 주문가격과 동일하면
주문거부가 됩니다.
그러므로 정정주문 전에 미체결객체를 셋팅하고
주문가격을 가져와 비교후에 동작하게 하시면 됩니다.
올리신 내용에 주문번호를 저장하는 부분이 없습니다.
SID는 주문아이디로 스팟에서 낸 주문을 추적하기 위한 내부아이디일뿐입니다.
주문 후 주문번호를 저장하고 해당 주문번호를 이용해 정정하게 하셔야 합니다
var SID,SNum;
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
BuyPositionCount = A1.GetTotalCount(0, 2); // 매수수량 체크
SellPositionCount = A1.GetTotalCount(0, 1); // 매도수량체크
C1_OnBarAppended();
if ( SellPositionCount == 0 && SID == 0 )
{
SID = A1.OrderSell(M1.code, Vol,Sell_price,1);
}
//미체결객체 셋팅
A1.SetUnfill(SNum);
if ( SID > 0 && Sell_price != Account2.Unfill.price)
{
SID = A1.OrderReplacePrice(SID,Sell_price);
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == SID)
{
SNum = OrderResponse.orderNum;
}
}
즐거운 하루되세요
> 토그 님이 쓴 글입니다.
> 제목 : 주문가격 수정 문의드립니다.
> var BuyPositionCount;
var SellPositionCount;
var BID, SID;
var Buy_price,Sell_price,Center_price;
var C1_low,C1_high,C1_current;
function Main_OnStart()
{
Main.MessageLog("시작");
Main.MessageLog(M1.code);
Main.SetTimer(1, 5000);
Buy_price = 0; Sell_price = 0;
BID = 0; SID = 0;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
BuyPositionCount = A1.GetTotalCount(0, 2); // 매수수량 체크
SellPositionCount = A1.GetTotalCount(0, 1); // 매도수량체크
C1_OnBarAppended();
if ( SellPositionCount == 0 && SID == 0 )
{
SID = A1.OrderSell(M1.code, Vol,Sell_price,1);
}
if ( SID > 0 && Sell_price != ) {
SID = A1.OrderReplacePrice(SID,Sell_price);
}
}
}
function C1_OnBarAppended(ndata)
{
var UP_exCenterZone = C1.GetIndicatorData("3L chart - 480", 6, 0);
var DN_exCenterZone = C1.GetIndicatorData("3L chart - 480", 7, 0);
var Center = C1.GetIndicatorData("3L chart - 480", 1, 0);
var bar_close = C1.GetClose(1,0);
var bar_high = C1.GetHigh(1, 0);
var bar_low = C1.GetLow(1, 0);
Buy_price = UP_exCenterZone;
Sell_price = DN_exCenterZone;
Center_price = Center;
C1_low = bar_low;
C1_high = bar_high;
C1_current = bar_close;
}
주문을 최초로 넣고 현재 진입조건가격이 최초 주문했던 가격과 비교해서 달라질 경우
어떻게 해야하는지 모르겠습니다.
도움좀 부탁드리겠습니다.