커뮤니티
수식 테스트 확인 부탁드립니다.
2013-06-09 23:51:36
246
글번호 64120
1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다
그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요..
무엇이 원인인지 테스트 부탁드립니다.
- 아래 _
var cnt;
var BID;
var SID;
var BXID;
var SXID;
function Main_OnStart()
{
Main.MessageLog("시작");
cnt = 0;
}
//봉완성(시가수신) 카운트 0로 초기화
function Chart1_OnBarAppended(nData)
{
if (nData == 1)
cnt = 0;
}
//미완성
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수
if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0)
{
BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0);
//주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매수신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0)
{
SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매도신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1)
{
Main.MessageList("완성 매수청산신호 발생");
BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1)
{
Main.MessageList("완성 매도청산신호 발생");
SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID )
{
BNUM = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
if (OrderResponse.orderID == SID )
{
SNUM = OrderResponse.orderNum;
Main.SetTimer(2, 60000);
}
if (OrderResponse.orderID == BXID )
{
BXNUM = OrderResponse.orderNum;
Main.SetTimer(3, 60000);
}
if (OrderResponse.orderID == SXID )
{
SXNUM = OrderResponse.orderNum;
Main.SetTimer(4, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
Main.KillTimer(1);
Account1.SetUnfillOrderNumber(BNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 2)
{
Main.KillTimer(2);
Account1.SetUnfillOrderNumber(SNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 3)
{
Main.KillTimer(3);
Account1.SetUnfillOrderNumber(BXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BXNUM);
}
}
if (nEventID == 4)
{
Main.KillTimer(4);
Account1.SetUnfillOrderNumber(SXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(SXNUM);
}
}
}
답변 2
예스스탁 예스스탁 답변
2013-06-10 15:07:38
안녕하세요
예스스탁입니다.
예스스팟이 장중에만 테스트가 되어
내일 답변을 드리도록 하겠습니다.
즐거운 하루되세요
> HI_lhj4610 님이 쓴 글입니다.
> 제목 : 수식 테스트 확인 부탁드립니다.
>
1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다
그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요..
무엇이 원인인지 테스트 부탁드립니다.
- 아래 _
var cnt;
var BID;
var SID;
var BXID;
var SXID;
function Main_OnStart()
{
Main.MessageLog("시작");
cnt = 0;
}
//봉완성(시가수신) 카운트 0로 초기화
function Chart1_OnBarAppended(nData)
{
if (nData == 1)
cnt = 0;
}
//미완성
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수
if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0)
{
BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0);
//주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매수신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0)
{
SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매도신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1)
{
Main.MessageList("완성 매수청산신호 발생");
BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1)
{
Main.MessageList("완성 매도청산신호 발생");
SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID )
{
BNUM = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
if (OrderResponse.orderID == SID )
{
SNUM = OrderResponse.orderNum;
Main.SetTimer(2, 60000);
}
if (OrderResponse.orderID == BXID )
{
BXNUM = OrderResponse.orderNum;
Main.SetTimer(3, 60000);
}
if (OrderResponse.orderID == SXID )
{
SXNUM = OrderResponse.orderNum;
Main.SetTimer(4, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
Main.KillTimer(1);
Account1.SetUnfillOrderNumber(BNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 2)
{
Main.KillTimer(2);
Account1.SetUnfillOrderNumber(SNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 3)
{
Main.KillTimer(3);
Account1.SetUnfillOrderNumber(BXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BXNUM);
}
}
if (nEventID == 4)
{
Main.KillTimer(4);
Account1.SetUnfillOrderNumber(SXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(SXNUM);
}
}
}
예스스탁 예스스탁 답변
2013-06-11 09:55:29
안녕하세요
예스스탁입니다.
청산신호가 발생하면 차트상 수량이 0이 되는데
1보다 크거나 작다로 작성해 드려 신호가 발생하지 않았습니다.
수정한 식입니다.
var cnt;
var BID;
var SID;
var BXID;
var SXID;
var Start;
function Main_OnStart()
{
Main.MessageLog("시작");
cnt = 0;
Start = 0;
}
//봉완성(시가수신) 카운트 0로 초기화
function Chart1_OnBarAppended(nData)
{
if (nData == 1)
cnt = 0;
}
//미완성
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수
if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0)
{
BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0);
//주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가)
cnt = 1;
Start = 1;
Main.MessageList("미완성 매수신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0)
{
SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가)
cnt = 1;
Start = 1;
Main.MessageList("미완성 매도신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 2 && Start == 1 )
{
Main.MessageList("완성 매수청산신호 발생");
BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (Signal.signalKind == 4 && Start == 1)
{
Main.MessageList("완성 매도청산신호 발생");
SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID )
{
BNUM = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
if (OrderResponse.orderID == SID )
{
SNUM = OrderResponse.orderNum;
Main.SetTimer(2, 60000);
}
if (OrderResponse.orderID == BXID )
{
BXNUM = OrderResponse.orderNum;
Main.SetTimer(3, 60000);
}
if (OrderResponse.orderID == SXID )
{
SXNUM = OrderResponse.orderNum;
Main.SetTimer(4, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
Main.KillTimer(1);
Account1.SetUnfillOrderNumber(BNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 2)
{
Main.KillTimer(2);
Account1.SetUnfillOrderNumber(SNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 3)
{
Main.KillTimer(3);
Account1.SetUnfillOrderNumber(BXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BXNUM);
}
}
if (nEventID == 4)
{
Main.KillTimer(4);
Account1.SetUnfillOrderNumber(SXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(SXNUM);
}
}
}
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 테스트 확인 부탁드립니다.
> 안녕하세요
예스스탁입니다.
예스스팟이 장중에만 테스트가 되어
내일 답변을 드리도록 하겠습니다.
즐거운 하루되세요
> HI_lhj4610 님이 쓴 글입니다.
> 제목 : 수식 테스트 확인 부탁드립니다.
>
1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다
그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요..
무엇이 원인인지 테스트 부탁드립니다.
- 아래 _
var cnt;
var BID;
var SID;
var BXID;
var SXID;
function Main_OnStart()
{
Main.MessageLog("시작");
cnt = 0;
}
//봉완성(시가수신) 카운트 0로 초기화
function Chart1_OnBarAppended(nData)
{
if (nData == 1)
cnt = 0;
}
//미완성
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수
if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0)
{
BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0);
//주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매수신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0)
{
SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가)
cnt = 1;
Main.MessageList("미완성 매도신호 발생");
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1)
{
Main.MessageList("완성 매수청산신호 발생");
BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1)
{
Main.MessageList("완성 매도청산신호 발생");
SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav");
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID )
{
BNUM = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
if (OrderResponse.orderID == SID )
{
SNUM = OrderResponse.orderNum;
Main.SetTimer(2, 60000);
}
if (OrderResponse.orderID == BXID )
{
BXNUM = OrderResponse.orderNum;
Main.SetTimer(3, 60000);
}
if (OrderResponse.orderID == SXID )
{
SXNUM = OrderResponse.orderNum;
Main.SetTimer(4, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
Main.KillTimer(1);
Account1.SetUnfillOrderNumber(BNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 2)
{
Main.KillTimer(2);
Account1.SetUnfillOrderNumber(SNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BNUM);
}
}
if (nEventID == 3)
{
Main.KillTimer(3);
Account1.SetUnfillOrderNumber(BXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(BXNUM);
}
}
if (nEventID == 4)
{
Main.KillTimer(4);
Account1.SetUnfillOrderNumber(SXNUM);
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(SXNUM);
}
}
}
다음글
이전글