예스스탁
예스스탁 답변
2018-12-26 16:06:07
안녕하세요
예스스탁입니다.
청산신호 발생하면 잔고의 모든 종목을 청산하게 수정했습니다.
var CallCode,PutCode;
var BEcnt,BXcnt,SEcnt,SXcnt;
var MaxEntryVol = 3;
var MaxExitVol;
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, 1, CallPrice, 0);
BEcnt = 1;
//1번 타이머 5초 셋팅
Main.SetTimer(1,5000);
}
if (Signal.signalKind == 2 )
{
Main.MessageList("매수청산신호발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, 1, PutPrice, 0);
SEcnt = 1;
//3번 타이머 5초 셋팅
Main.SetTimer(3,5000);
}
if (Signal.signalKind == 4 )
{
Main.MessageList("매도청산발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머 동작할 때마다
if (nEventID == 1)
{
//카운트
BEcnt = BEcnt+1;
//카운트가 최대진입수량 이하이면
if (BEcnt <= MaxEntryVol)
{
//1계약씩 추가매수
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
//최대진입수량에 도달하면 타이머종료
if (BEcnt == MaxEntryVol)
{
Main.KillTimer(1);
}
}
//2번타이머 동작할때마다
if (nEventID == 2)
{
//카운트
BXcnt = BXcnt+1;
//카운트가 보유수량 이하이면
if (BXcnt <= MaxExitVol)
{
//1계약씩 매도주문
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
//카운트가 보유수량에 도달하면 타이머 종료
if (BXcnt == MaxExitVol)
{
Main.KillTimer(2);
}
}
}
즐거운 하루되세요
> 팡팡 님이 쓴 글입니다.
> 제목 : 매수매도 청산
> 매수신호: ATM 5초간격 콜매수
매수청산 신호: 종목관계 없이 잔고가 있으면 5초간격 콜매도 청산
매도신호: 어떤 종목 5초간격 풋매수
매도청산 신호: 종목관계 없이 잔고가 있으면 5초간격 풋매도 청산
var CallCode,PutCode;
var BEcnt,BXcnt,SEcnt,SXcnt;
var MaxEntryVol = 3;
var MaxExitVol;
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, 1, CallPrice, 0);
BEcnt = 1;
//1번 타이머 5초 셋팅
Main.SetTimer(1,5000);
}
if (Signal.signalKind == 2 )
{
Main.MessageList("매수청산신호발생");
var BxPrice = Option.GetBidByCode(CallCode, 2);
A1.OrderSell(CallCode, 1, BxPrice, 0);
BXcnt = 1;
//보유수량이 2계약 이상이면
if (MaxExitVol >= 2)
//2번 타이머 5초 셋팅
Main.SetTimer(2,5000);
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, 1, PutPrice, 0);
SEcnt = 1;
//3번 타이머 5초 셋팅
Main.SetTimer(3,5000);
}
if (Signal.signalKind == 4 )
{
Main.MessageList("매도청산발생");
var SxPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderSell(PutCode, Vo, SxPrice, 0);
SXcnt = 1;
//보유수량이 2계약 이상이면
if (MaxExitVol >= 2)
//4번 타이머 5초 셋팅
Main.SetTimer(4,5000);
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머 동작할 때마다
if (nEventID == 1)
{
//카운트
BEcnt = BEcnt+1;
//카운트가 최대진입수량 이하이면
if (BEcnt <= MaxEntryVol)
{
//1계약씩 추가매수
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
//최대진입수량에 도달하면 타이머종료
if (BEcnt == MaxEntryVol)
{
Main.KillTimer(1);
}
}
//2번타이머 동작할때마다
if (nEventID == 2)
{
//카운트
BXcnt = BXcnt+1;
//카운트가 보유수량 이하이면
if (BXcnt <= MaxExitVol)
{
//1계약씩 매도주문
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
//카운트가 보유수량에 도달하면 타이머 종료
if (BXcnt == MaxExitVol)
{
Main.KillTimer(2);
}
}
if (nEventID == 3)
{
SEcnt = SEcnt+1;
if (SEcnt <= MaxEntryVol)
{
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
if (SEcnt == MaxEntryVol)
{
Main.KillTimer(3);
}
}
if (nEventID == 4)
{
SXcnt = SXcnt+1;
if (SXcnt <= MaxExitVol)
{
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
if (SXcnt == MaxExitVol)
{
Main.KillTimer(4);
}
}
}
예스스탁
예스스탁 답변
2018-12-26 16:06:54
안녕하세요
예스스탁입니다.
청산신호 발생시 잔고의 모든 종목을 청산하게 수정했습니다.
var CallCode,PutCode;
var BEcnt,BXcnt,SEcnt,SXcnt;
var MaxEntryVol = 3;
var MaxExitVol;
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, 1, CallPrice, 0);
BEcnt = 1;
//1번 타이머 5초 셋팅
Main.SetTimer(1,5000);
}
if (Signal.signalKind == 2 )
{
Main.MessageList("매수청산신호발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, 1, PutPrice, 0);
SEcnt = 1;
//3번 타이머 5초 셋팅
Main.SetTimer(3,5000);
}
if (Signal.signalKind == 4 )
{
Main.MessageList("매도청산발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머 동작할 때마다
if (nEventID == 1)
{
//카운트
BEcnt = BEcnt+1;
//카운트가 최대진입수량 이하이면
if (BEcnt <= MaxEntryVol)
{
//1계약씩 추가매수
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
//최대진입수량에 도달하면 타이머종료
if (BEcnt == MaxEntryVol)
{
Main.KillTimer(1);
}
}
//2번타이머 동작할때마다
if (nEventID == 2)
{
//카운트
BXcnt = BXcnt+1;
//카운트가 보유수량 이하이면
if (BXcnt <= MaxExitVol)
{
//1계약씩 매도주문
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
//카운트가 보유수량에 도달하면 타이머 종료
if (BXcnt == MaxExitVol)
{
Main.KillTimer(2);
}
}
}
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 전화주시기 바랍니다.(02-3453-1060)
> 안녕하세요
예스스탁입니다.
청산신호 발생하면 잔고의 모든 종목을 청산하게 수정했습니다.
var CallCode,PutCode;
var BEcnt,BXcnt,SEcnt,SXcnt;
var MaxEntryVol = 3;
var MaxExitVol;
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, 1, CallPrice, 0);
BEcnt = 1;
//1번 타이머 5초 셋팅
Main.SetTimer(1,5000);
}
if (Signal.signalKind == 2 )
{
Main.MessageList("매수청산신호발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, 1, PutPrice, 0);
SEcnt = 1;
//3번 타이머 5초 셋팅
Main.SetTimer(3,5000);
}
if (Signal.signalKind == 4 )
{
Main.MessageList("매도청산발생");
//보유종목수
var num = A1.GetTheNumberOfBalances();
if (num > 0)
{
for (var i = 0; i < num; i++)
{
A1.SetBalance(i);
if (A1.Balance.count > 0)
{
if (A1.Balance.position == 1)
{
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
}
if (A1.Balance.position == 2)
{
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}
}
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머 동작할 때마다
if (nEventID == 1)
{
//카운트
BEcnt = BEcnt+1;
//카운트가 최대진입수량 이하이면
if (BEcnt <= MaxEntryVol)
{
//1계약씩 추가매수
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
//최대진입수량에 도달하면 타이머종료
if (BEcnt == MaxEntryVol)
{
Main.KillTimer(1);
}
}
//2번타이머 동작할때마다
if (nEventID == 2)
{
//카운트
BXcnt = BXcnt+1;
//카운트가 보유수량 이하이면
if (BXcnt <= MaxExitVol)
{
//1계약씩 매도주문
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
//카운트가 보유수량에 도달하면 타이머 종료
if (BXcnt == MaxExitVol)
{
Main.KillTimer(2);
}
}
}
즐거운 하루되세요
> 팡팡 님이 쓴 글입니다.
> 제목 : 매수매도 청산
> 매수신호: ATM 5초간격 콜매수
매수청산 신호: 종목관계 없이 잔고가 있으면 5초간격 콜매도 청산
매도신호: 어떤 종목 5초간격 풋매수
매도청산 신호: 종목관계 없이 잔고가 있으면 5초간격 풋매도 청산
var CallCode,PutCode;
var BEcnt,BXcnt,SEcnt,SXcnt;
var MaxEntryVol = 3;
var MaxExitVol;
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, 1, CallPrice, 0);
BEcnt = 1;
//1번 타이머 5초 셋팅
Main.SetTimer(1,5000);
}
if (Signal.signalKind == 2 )
{
Main.MessageList("매수청산신호발생");
var BxPrice = Option.GetBidByCode(CallCode, 2);
A1.OrderSell(CallCode, 1, BxPrice, 0);
BXcnt = 1;
//보유수량이 2계약 이상이면
if (MaxExitVol >= 2)
//2번 타이머 5초 셋팅
Main.SetTimer(2,5000);
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, 1, PutPrice, 0);
SEcnt = 1;
//3번 타이머 5초 셋팅
Main.SetTimer(3,5000);
}
if (Signal.signalKind == 4 )
{
Main.MessageList("매도청산발생");
var SxPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderSell(PutCode, Vo, SxPrice, 0);
SXcnt = 1;
//보유수량이 2계약 이상이면
if (MaxExitVol >= 2)
//4번 타이머 5초 셋팅
Main.SetTimer(4,5000);
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머 동작할 때마다
if (nEventID == 1)
{
//카운트
BEcnt = BEcnt+1;
//카운트가 최대진입수량 이하이면
if (BEcnt <= MaxEntryVol)
{
//1계약씩 추가매수
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
//최대진입수량에 도달하면 타이머종료
if (BEcnt == MaxEntryVol)
{
Main.KillTimer(1);
}
}
//2번타이머 동작할때마다
if (nEventID == 2)
{
//카운트
BXcnt = BXcnt+1;
//카운트가 보유수량 이하이면
if (BXcnt <= MaxExitVol)
{
//1계약씩 매도주문
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
//카운트가 보유수량에 도달하면 타이머 종료
if (BXcnt == MaxExitVol)
{
Main.KillTimer(2);
}
}
if (nEventID == 3)
{
SEcnt = SEcnt+1;
if (SEcnt <= MaxEntryVol)
{
A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0);
}
if (SEcnt == MaxEntryVol)
{
Main.KillTimer(3);
}
}
if (nEventID == 4)
{
SXcnt = SXcnt+1;
if (SXcnt <= MaxExitVol)
{
A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0);
}
if (SXcnt == MaxExitVol)
{
Main.KillTimer(4);
}
}
}