안녕하세요~
다음 내용과 같이 수식 변경 부탁드립니다.
--------------------
< 현재 수식 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수
매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도
3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill
function Main_OnStart()
{
Main.MessageLog("시작");
incompleteN = 0;
}
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//09시52초 이전
if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000)
{
if (incompleteN == 0 && IncompleteSignal.signalKind == 1 &&
MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수
{
BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
BuyFill = 0;
}
if (incompleteN == 0 && IncompleteSignal.signalKind == 3 &&
MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도
{
SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
SellFill = 0;
}
}
< 변경요청 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경
--> 미완성신호가 발생하는 즉시
매수신호시 : 시초가-0.3 에 주문
매도신호시 : 시초가+0.3 에 주문
--> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지)
3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정
(즉, incompleteN = 1 이 아니면 5호가 정정주문)
4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용
//미완성신호 선주문
.....
...
.......
//09시54초 --> 09시52초까지 미체결시
if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시)
{
해당 매수주문 5호가 정정
}
if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시)
{
해당 매도주문 5호가 정정
}
-------------------------
이상입니다.
그럼 활기찬 시간되시기를 바라며,
감사합니다 !!
답변 1
예스스탁
예스스탁 답변
2015-06-03 19:15:00
안녕하세요
예스스탁입니다.
영문 업데이트에 *가 있습니다. 제거하시기 바랍니다.
var BuyID,SellID,BuyNum,SellNum;
var incompleteN;
var Sig;
function Main_OnStart()
{
Main.MessageLog("시작");
incompleteN = 0;
Sig = 0;
}
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//09시52초 이전
if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000)
{
if (Sig == 0 && incompleteN == 0 && IncompleteSignal.signalKind == 1 )
{
BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.open-0.3,0);
incompleteN = 0;
BuyFill = 0;
Sig = 1;
}
if (Sig == 0 && incompleteN == 0 && IncompleteSignal.signalKind == 3 )
{
SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.open+0.3,0);
incompleteN = 0;
SellFill = 0;
Sig = -1;
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (BuyID == OrderResponse.orderID)
{
BuyNum = OrderResponse.orderNum;
}
if (SellID == OrderResponse.orderID)
{
SellNum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == BuyNum)
{
incompleteN = 1;
}
if (NotifyFill.orderNum == BuyNum)
{
incompleteN = 1;
}
}
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)
{
if (lUp*dateID == 20001)
{
if (MarketData1.time >= 0900540000 && Sig == 1 && incompleteN == 0)
{
Account1.SetUnfillOrderNumber(BuyNum)
if (Account1.Unfill.count > 0)
{
Account1.OrderReplacePrice(BuyNum, MarketData1.Ask(5));
}
}
if (MarketData1.time >= 0900540000 && Sig == -1 && incompleteN == 0)
{
Account1.SetUnfillOrderNumber(SellNum)
if (Account1.Unfill.count > 0)
{
Account1.OrderReplacePrice(SellNum, MarketData1.Bid(5));
}
}
}
}
즐거운 하루되세요
> 새로운세상 님이 쓴 글입니다.
> 제목 : 미완성신호 주문
> 안녕하세요~
다음 내용과 같이 수식 변경 부탁드립니다.
--------------------
< 현재 수식 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수
매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도
3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill
function Main_OnStart()
{
Main.MessageLog("시작");
incompleteN = 0;
}
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//09시52초 이전
if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000)
{
if (incompleteN == 0 && IncompleteSignal.signalKind == 1 &&
MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수
{
BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
BuyFill = 0;
}
if (incompleteN == 0 && IncompleteSignal.signalKind == 3 &&
MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도
{
SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0);
incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정
SellFill = 0;
}
}
< 변경요청 내용 >
1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우
2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경
--> 미완성신호가 발생하는 즉시
매수신호시 : 시초가-0.3 에 주문
매도신호시 : 시초가+0.3 에 주문
--> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지)
3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정
(즉, incompleteN = 1 이 아니면 5호가 정정주문)
4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용
//미완성신호 선주문
.....
...
.......
//09시54초 --> 09시52초까지 미체결시
if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시)
{
해당 매수주문 5호가 정정
}
if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시)
{
해당 매도주문 5호가 정정
}
-------------------------
이상입니다.
그럼 활기찬 시간되시기를 바라며,
감사합니다 !!