커뮤니티
수식 수정 부탁드립니다.
2016-09-13 10:31:47
157
글번호 101946
안녕하세요.
당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로
매매시 "가격 제한폭 초과" 진입오류가 발생 합니다.
확인 수정 부탁 드립니다.
감사합니다.
연결선물 진입수식
if NextBarSdate != Sdate and NextBarOpen > C Then
Buy("BY",AtMarket);
if NextBarSdate != Sdate and NextBarOpen < C Then
Sell("SL",AtMarket);
예스스팟수식
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
- 1. 스크립트_오류_메세지_20160913.png (0.00 MB)
답변 2
예스스탁 예스스탁 답변
2016-09-13 18:55:44
안녕하세요
예스스탁입니다.
해당 메세지는 지정한 가격으로 주문을 접수했는데
해당 가격이 지정한 폭을넘어 발생하는 내용입니다.
만약 주문가격으로 지정한 호가가 없으면 값이 0 되어 범위초과로 됩니다.
아래 수식과 같이 사용해 보시기 바랍니다.
매수주문은 매도1~6 호가 중 가격이 있는 가장 높은 호가를 찾아 주문
매도주문은 매수1~5 호가 중 가격이 있는 가장 낮은 호가를 찾아 주문합니다.
해당 내용으로 적용해 보시고 의도와 다르시면
추석이후에 전화주시기 바랍니다.
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Main.MessageList("Buy신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5));
var Pr;
if (MarketData1.Ask(1) > 0)
Pr = MarketData1.Ask(1);
if (MarketData1.Ask(2) > 0)
Pr = MarketData1.Ask(2);
if (MarketData1.Ask(3) > 0)
Pr = MarketData1.Ask(3);
if (MarketData1.Ask(4) > 0)
Pr = MarketData1.Ask(4);
if (MarketData1.Ask(5) > 0)
Pr = MarketData1.Ask(5);
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, Pr, 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Main.MessageList("Exitlong신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5));
var Pr;
if (MarketData1.Bid(1) > 0)
Pr = MarketData1.Bid(1);
if (MarketData1.Bid(2) > 0)
Pr = MarketData1.Bid(2);
if (MarketData1.Bid(3) > 0)
Pr = MarketData1.Bid(3);
if (MarketData1.Bid(4) > 0)
Pr = MarketData1.Bid(4);
if (MarketData1.Bid(5) > 0)
Pr = MarketData1.Bid(5);
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Main.MessageList("Sell신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5));
var Pr;
if (MarketData1.Bid(1) > 0)
Pr = MarketData1.Bid(1);
if (MarketData1.Bid(2) > 0)
Pr = MarketData1.Bid(2);
if (MarketData1.Bid(3) > 0)
Pr = MarketData1.Bid(3);
if (MarketData1.Bid(4) > 0)
Pr = MarketData1.Bid(4);
if (MarketData1.Bid(5) > 0)
Pr = MarketData1.Bid(5);
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Main.MessageList("ExitShort신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5));
var Pr;
if (MarketData1.Ask(1) > 0)
Pr = MarketData1.Ask(1);
if (MarketData1.Ask(2) > 0)
Pr = MarketData1.Ask(2);
if (MarketData1.Ask(3) > 0)
Pr = MarketData1.Ask(3);
if (MarketData1.Ask(4) > 0)
Pr = MarketData1.Ask(4);
if (MarketData1.Ask(5) > 0)
Pr = MarketData1.Ask(5);
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
즐거운 명절되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다.
> 안녕하세요.
당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로
매매시 "가격 제한폭 초과" 진입오류가 발생 합니다.
확인 수정 부탁 드립니다.
감사합니다.
연결선물 진입수식
if NextBarSdate != Sdate and NextBarOpen > C Then
Buy("BY",AtMarket);
if NextBarSdate != Sdate and NextBarOpen < C Then
Sell("SL",AtMarket);
예스스팟수식
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
예스스탁 예스스탁 답변
2016-09-19 09:40:55
안녕하세요
예스스탁입니다.
주문을 매수는 현재가에 +5틱. 매도는 -5틱이 되게 지정했습니다.
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current + MarketData1.GetTickSize()*5, 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current - MarketData1.GetTickSize()*5, 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current - MarketData1.GetTickSize()*5, 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current + MarketData1.GetTickSize()*5, 0);
}
}
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 수정 부탁드립니다.
> 안녕하세요
예스스탁입니다.
해당 메세지는 지정한 가격으로 주문을 접수했는데
해당 가격이 지정한 폭을넘어 발생하는 내용입니다.
만약 주문가격으로 지정한 호가가 없으면 값이 0 되어 범위초과로 됩니다.
아래 수식과 같이 사용해 보시기 바랍니다.
매수주문은 매도1~6 호가 중 가격이 있는 가장 높은 호가를 찾아 주문
매도주문은 매수1~5 호가 중 가격이 있는 가장 낮은 호가를 찾아 주문합니다.
해당 내용으로 적용해 보시고 의도와 다르시면
추석이후에 전화주시기 바랍니다.
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Main.MessageList("Buy신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5));
var Pr;
if (MarketData1.Ask(1) > 0)
Pr = MarketData1.Ask(1);
if (MarketData1.Ask(2) > 0)
Pr = MarketData1.Ask(2);
if (MarketData1.Ask(3) > 0)
Pr = MarketData1.Ask(3);
if (MarketData1.Ask(4) > 0)
Pr = MarketData1.Ask(4);
if (MarketData1.Ask(5) > 0)
Pr = MarketData1.Ask(5);
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, Pr, 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Main.MessageList("Exitlong신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5));
var Pr;
if (MarketData1.Bid(1) > 0)
Pr = MarketData1.Bid(1);
if (MarketData1.Bid(2) > 0)
Pr = MarketData1.Bid(2);
if (MarketData1.Bid(3) > 0)
Pr = MarketData1.Bid(3);
if (MarketData1.Bid(4) > 0)
Pr = MarketData1.Bid(4);
if (MarketData1.Bid(5) > 0)
Pr = MarketData1.Bid(5);
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Main.MessageList("Sell신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5));
var Pr;
if (MarketData1.Bid(1) > 0)
Pr = MarketData1.Bid(1);
if (MarketData1.Bid(2) > 0)
Pr = MarketData1.Bid(2);
if (MarketData1.Bid(3) > 0)
Pr = MarketData1.Bid(3);
if (MarketData1.Bid(4) > 0)
Pr = MarketData1.Bid(4);
if (MarketData1.Bid(5) > 0)
Pr = MarketData1.Bid(5);
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Main.MessageList("ExitShort신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5));
var Pr;
if (MarketData1.Ask(1) > 0)
Pr = MarketData1.Ask(1);
if (MarketData1.Ask(2) > 0)
Pr = MarketData1.Ask(2);
if (MarketData1.Ask(3) > 0)
Pr = MarketData1.Ask(3);
if (MarketData1.Ask(4) > 0)
Pr = MarketData1.Ask(4);
if (MarketData1.Ask(5) > 0)
Pr = MarketData1.Ask(5);
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
즐거운 명절되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다.
> 안녕하세요.
당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로
매매시 "가격 제한폭 초과" 진입오류가 발생 합니다.
확인 수정 부탁 드립니다.
감사합니다.
연결선물 진입수식
if NextBarSdate != Sdate and NextBarOpen > C Then
Buy("BY",AtMarket);
if NextBarSdate != Sdate and NextBarOpen < C Then
Sell("SL",AtMarket);
예스스팟수식
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}