커뮤니티

일일손실제한 다음 식을 사용해도 되나요?

프로필 이미지
피니트
2017-03-03 12:36:04
2474
글번호 224131
답변완료
항상 감사드립니다. 여러개의 스팟식을 사용해서 포트폴리오 매매를 하고 있습니다. 아래 조건으로 스팟식을 만들고자 합니다. 금일 매매중에 총 100만원 손실 보고 있을시 모든 포지션 청산하고 + 금일은 추가 매매금지 var i1; var X; var dayloss = 1000000; //스팟 시작시 function Main_OnStart() { //i1에 예수금/예탁총액 저장 i1 = ACC.GetBalanceETCinfo(0); X = 0; Main.SetTimer(1, 5000);//5초 타이머 셋팅 } function Main_OnTimer(nEventID) { // 현재 정산금이 스팟시작시값보다 ""dayloss"" 이상 감소했으면 if (nEventID == 1 && ACC.GetBalanceETCinfo(100) <= i1-dayloss) { //타이머 중지 Main.KillTimer(1); var Bnum = ACC.GetTheNumberOfBalances(); for(var i = 0; i < Bnum; i++) { ACC.SetBalance(i); //콜이나 풋이면 if (ACC.Balance.code.substring(0,1) == "2" || ACC.Balance.code.substring(0,1) == "3") { // 포지션 청산 if (ACC.Balance.position == 1) ACC.OrderBuy(ACC.Balance.code,ACC.Balance.count,0,1); if (ACC.Balance.position == 2) ACC.OrderSell(ACC.Balance.code,ACC.Balance.count,0,1); } } X = 1; } } 1. 위의 식에 오류는 없나요? 2. 812글 답변에 보면 //현재 예수금/예탁총액이 스팟시작시값보다 20% 이상 감소했으면 if (nEventID == 1 && Account1.GetBalanceETCinfo(0) <= i1*0.8) { 이라는 부분이 나옵니다.GetBalanceETCinfo(0) 값은 "예수금"인데 , 0 대신 100 "정산금" 값이 실시간 값 아닌지요? 3. 다른 스팟 주문식에 && X ==0 을 넣으라고 하셨는데 , 이 때 그 주문식에도 var X; 라고 정의를 해야 하나요? 4. 만일 3개의 스팟식을 운영한다고 할 때 저 조건식을 3개의 스팟식에 모두 넣어야 하는지요? 5. 아니면 하나의 스팟식에서 변수를 정의하면 동시에 실행하는 다른 스팟식에도 두루 사용할 수 있는지도 궁금합니다. ======= 전화통화로 해결되었습니다. 감사드립니다^^
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-03-15 18:18:14

> 피니트 님이 쓴 글입니다. > 제목 : 일일손실제한 다음 식을 사용해도 되나요? > 항상 감사드립니다. 여러개의 스팟식을 사용해서 포트폴리오 매매를 하고 있습니다. 아래 조건으로 스팟식을 만들고자 합니다. 금일 매매중에 총 100만원 손실 보고 있을시 모든 포지션 청산하고 + 금일은 추가 매매금지 var i1; var X; var dayloss = 1000000; //스팟 시작시 function Main_OnStart() { //i1에 예수금/예탁총액 저장 i1 = ACC.GetBalanceETCinfo(0); X = 0; Main.SetTimer(1, 5000);//5초 타이머 셋팅 } function Main_OnTimer(nEventID) { // 현재 정산금이 스팟시작시값보다 ""dayloss"" 이상 감소했으면 if (nEventID == 1 && ACC.GetBalanceETCinfo(100) <= i1-dayloss) { //타이머 중지 Main.KillTimer(1); var Bnum = ACC.GetTheNumberOfBalances(); for(var i = 0; i < Bnum; i++) { ACC.SetBalance(i); //콜이나 풋이면 if (ACC.Balance.code.substring(0,1) == "2" || ACC.Balance.code.substring(0,1) == "3") { // 포지션 청산 if (ACC.Balance.position == 1) ACC.OrderBuy(ACC.Balance.code,ACC.Balance.count,0,1); if (ACC.Balance.position == 2) ACC.OrderSell(ACC.Balance.code,ACC.Balance.count,0,1); } } X = 1; } } 1. 위의 식에 오류는 없나요? 2. 812글 답변에 보면 //현재 예수금/예탁총액이 스팟시작시값보다 20% 이상 감소했으면 if (nEventID == 1 && Account1.GetBalanceETCinfo(0) <= i1*0.8) { 이라는 부분이 나옵니다.GetBalanceETCinfo(0) 값은 "예수금"인데 , 0 대신 100 "정산금" 값이 실시간 값 아닌지요? 3. 다른 스팟 주문식에 && X ==0 을 넣으라고 하셨는데 , 이 때 그 주문식에도 var X; 라고 정의를 해야 하나요? 4. 만일 3개의 스팟식을 운영한다고 할 때 저 조건식을 3개의 스팟식에 모두 넣어야 하는지요? 5. 아니면 하나의 스팟식에서 변수를 정의하면 동시에 실행하는 다른 스팟식에도 두루 사용할 수 있는지도 궁금합니다. ======= 전화통화로 해결되었습니다. 감사드립니다^^