첨부 이미지
그림1
첨부사진처럼 피라미딩 진입이 있을때 청산신호가 2개라서 이전진입계약수가 2계약이라 총 4개가 청산되는데 2계약만 청산하고 싶은데 어떻게 해야할지 모르겠습니다.
아래수식에다 적용을 하려면 어떻게 수정해야하는지 알고 싶은데 도움부탁드리겠습니다.
//스팟 시작시
function Main_OnStart()
{
Main.MessageList("스팟 시작");
}
//-------------------------------------------------------------------------------------
//차트에서 신호나오면 MarketData1 종목에 대해 주문
function Chart1_OnRiseSignal(Signal) //차트1에서 완성신호이벤트가(온라이즈시그널)) 발생하면 시그널에 그정보를 넘겨준다
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,매수주문가격,주문종류);
}
//매수청산신호 발생
if (Signal.signalKind == 2)
{
//잔고셋팅해 매수포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매수청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
BXID = Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,매도주문가격,주문종류);
}
}
//매도진입신호 발생
if (Signal.signalKind == 3)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,매도주문가격,주문종류);
}
//매도청산신호 발생
if (Signal.signalKind == 4)
{
//잔고셋팅해 매도포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매도청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
SXID = Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,매수주문가격,주문종류);
}
}
}
답변 1
예스스탁
예스스탁 답변
2018-10-04 16:00:05
> 수다리 님이 쓴 글입니다.
> 제목 : 피라미딩 청산 수식관련
> 첨부사진처럼 피라미딩 진입이 있을때 청산신호가 2개라서 이전진입계약수가 2계약이라 총 4개가 청산되는데 2계약만 청산하고 싶은데 어떻게 해야할지 모르겠습니다.
아래수식에다 적용을 하려면 어떻게 수정해야하는지 알고 싶은데 도움부탁드리겠습니다.
//스팟 시작시
function Main_OnStart()
{
Main.MessageList("스팟 시작");
}
//-------------------------------------------------------------------------------------
//차트에서 신호나오면 MarketData1 종목에 대해 주문
function Chart1_OnRiseSignal(Signal) //차트1에서 완성신호이벤트가(온라이즈시그널)) 발생하면 시그널에 그정보를 넘겨준다
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,매수주문가격,주문종류);
}
//매수청산신호 발생
if (Signal.signalKind == 2)
{
//잔고셋팅해 매수포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매수청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
BXID = Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,매도주문가격,주문종류);
}
}
//매도진입신호 발생
if (Signal.signalKind == 3)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,매도주문가격,주문종류);
}
//매도청산신호 발생
if (Signal.signalKind == 4)
{
//잔고셋팅해 매도포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매도청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
SXID = Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,매수주문가격,주문종류);
}
}
}