안녕하세요 항상 답변 잘 활용하고 있습니다
선물신호를 이용하여 옵션거래중인데
전일 선물진폭(예를 들어 3.0이상시 진입금지)에 따라 스팟에서 진입을
제한하는 필터를 넣고 싶습니다
선물시스템이 배포용이다보니 수정이 안되서 스팟으로 제한을 해야합니다.
아래는 샘플 수식입니다. 감사합니다.
=======================================================================
function Main_OnStart()
{
Main.MessageList("시작");
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
T = 1;
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
if (T == 1 && Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (Signal.signalKind == 3)
{
T = -1;
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (T == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
}
답변 2
예스스탁
예스스탁 답변
2016-02-05 14:43:23
안녕하세요
예스스탁입니다.
수식에 아래와 같이 처리하시면 됩니다.
수식에 MarketData1이라는 종목객체가 이용되고 있습니다.
만약 MarketData1이 선물이시면 아래와 같이 지정하시면 됩니다.
function Main_OnStart()
{
Main.MessageList("시작");
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
if (MarketData1.high < MarketData1.low + 3)//3포인트 이내
{ if (Signal.signalKind == 1)
{
T = 1;
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
if (T == 1 && Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (Signal.signalKind == 3)
{
T = -1;
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (T == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
}
}
MarketData1이 선물이 아니시면
MarketData2로 선물 추가하신 후에
MarketData2.high < MarketData2.low + 3 조건을 변경하시면 됩니다.
즐거운 명절연휴 되시기 바랍니다.
> 탄젠트80 님이 쓴 글입니다.
> 제목 : 간단한 수식문의
>
안녕하세요 항상 답변 잘 활용하고 있습니다
선물신호를 이용하여 옵션거래중인데
전일 선물진폭(예를 들어 3.0이상시 진입금지)에 따라 스팟에서 진입을
제한하는 필터를 넣고 싶습니다
선물시스템이 배포용이다보니 수정이 안되서 스팟으로 제한을 해야합니다.
아래는 샘플 수식입니다. 감사합니다.
=======================================================================
function Main_OnStart()
{
Main.MessageList("시작");
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
T = 1;
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
if (T == 1 && Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (Signal.signalKind == 3)
{
T = -1;
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(5), 0);
}
if (T == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(5), 0);
}
}
탄젠트80
2016-02-18 00:29:31
탄젠트80 님에 의해 삭제된 답변입니다.