커뮤니티

매수매도 청산

프로필 이미지
팡팡
2018-12-09 18:51:53
2923
글번호 224670
답변완료
매수신호: 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); } } }
답변 2
프로필 이미지

예스스탁 예스스탁 답변

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); } } }