커뮤니티

수식 질문드립니다.

프로필 이미지
캣피쉬
2022-03-06 01:39:07
1641
글번호 156957
답변완료

첨부 이미지

수식 합치는거좀 부 탁드립니다. Option.GetATMCallRecent(n) Option.GetATMPutRecent(n) 요걸 수정하기 위함입니다. 1. 홈페이지 스팟 메뉴얼에 있는식입니다. var Start; var B1CallCode; var B1PutCode; var S1CallCode; var S1PutCode; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1 ) { Start = 1; B1CallCode = Option.GetATMCallRecent(n); var B1CallPrice = Option.GetAskByCode(B1CallCode,2); A1.OrderBuy(B1CallCode, Vol1, B1CallPrice, 0); Main.MessageLog("콜매수"); } if (Start == 1 && Signal.signalKind == 2 ) { var B1xCallPrice = Option.GetBidByCode(B1CallCode, 2); A1.OrderSell(B1CallCode, Vol1, B1xCallPrice, 0); Main.MessageLog("콜매수청산"); } if (Signal.signalKind == 3 ) { Start = 1; S1PutCode = Option.GetATMPutRecent(n); var S1PutPrice = Option.GetAskByCode(S1PutCode,2); A1.OrderBuy(S1PutCode, Vol1, S1PutPrice, 0); Main.MessageLog("풋매수"); } if (Start == 1 && Signal.signalKind == 4 ) { var S1xPutPrice = Option.GetBidByCode(S1PutCode, 2); A1.OrderSell(S1PutCode, Vol1, S1xPutPrice, 0); Main.MessageLog("합성선물매도청산"); } } 2.1번의 식에다가 아래 easy language 식을 넣고 싶습니다. var : c2(0,Data2); var : n(0); c2 = Data2(c); if c2>0 Then n=ceiling(c2*7/2.5); if c2>1 Then n=ceiling(c2*5/2.5); if c2>2 Then n=ceiling(c2*4/2.5); if c2>3 Then n=ceiling(c2*3/2.5); if c2>7 Then n=ceiling(c2*2.5/2.5); #Plot1(n); 3. 여기서 문제가 메뉴얼에는 data2 부터 쓰라고 나와있는데 사진처럼 data1 써도 상관없는거죠? data1에서 datamanager 불러지던데요. "888"은 data manager의 data 입니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-03-07 09:41:14

안녕하세요 예스스탁입니다. 기본차트(data1)로도 만드실수 있습니다. ChartEx1.GetClose로 값 가져와 사용하시면 됩니다. var Start; var B1CallCode; var B1PutCode; var S1CallCode; var S1PutCode; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); var n; if (ChartEx1.GetClose(1, 0) > 0) n = Math.ceil(c2*7/2.5); if (ChartEx1.GetClose(1, 0) > 1) n = Math.ceil(c2*5/2.5); if (ChartEx1.GetClose(1, 0) > 2) n = Math.ceil(c2*4/2.5); if (ChartEx1.GetClose(1, 0) > 3) n = Math.ceil(c2*3/2.5); if (ChartEx1.GetClose(1, 0) > 7) n = Math.ceil(c2*2.5/2.5); if (Signal.signalKind == 1 ) { Start = 1; B1CallCode = Option.GetATMCallRecent(n); var B1CallPrice = Option.GetAskByCode(B1CallCode,2); A1.OrderBuy(B1CallCode, Vol1, B1CallPrice, 0); Main.MessageLog("콜매수"); } if (Start == 1 && Signal.signalKind == 2 ) { var B1xCallPrice = Option.GetBidByCode(B1CallCode, 2); A1.OrderSell(B1CallCode, Vol1, B1xCallPrice, 0); Main.MessageLog("콜매수청산"); } if (Signal.signalKind == 3 ) { Start = 1; S1PutCode = Option.GetATMPutRecent(n); var S1PutPrice = Option.GetAskByCode(S1PutCode,2); A1.OrderBuy(S1PutCode, Vol1, S1PutPrice, 0); Main.MessageLog("풋매수"); } if (Start == 1 && Signal.signalKind == 4 ) { var S1xPutPrice = Option.GetBidByCode(S1PutCode, 2); A1.OrderSell(S1PutCode, Vol1, S1xPutPrice, 0); Main.MessageLog("합성선물매도청산"); } } 즐거운 하루되세요 > 캣피쉬 님이 쓴 글입니다. > 제목 : 수식 질문드립니다. > 수식 합치는거좀 부 탁드립니다. Option.GetATMCallRecent(n) Option.GetATMPutRecent(n) 요걸 수정하기 위함입니다. 1. 홈페이지 스팟 메뉴얼에 있는식입니다. var Start; var B1CallCode; var B1PutCode; var S1CallCode; var S1PutCode; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1 ) { Start = 1; B1CallCode = Option.GetATMCallRecent(n); var B1CallPrice = Option.GetAskByCode(B1CallCode,2); A1.OrderBuy(B1CallCode, Vol1, B1CallPrice, 0); Main.MessageLog("콜매수"); } if (Start == 1 && Signal.signalKind == 2 ) { var B1xCallPrice = Option.GetBidByCode(B1CallCode, 2); A1.OrderSell(B1CallCode, Vol1, B1xCallPrice, 0); Main.MessageLog("콜매수청산"); } if (Signal.signalKind == 3 ) { Start = 1; S1PutCode = Option.GetATMPutRecent(n); var S1PutPrice = Option.GetAskByCode(S1PutCode,2); A1.OrderBuy(S1PutCode, Vol1, S1PutPrice, 0); Main.MessageLog("풋매수"); } if (Start == 1 && Signal.signalKind == 4 ) { var S1xPutPrice = Option.GetBidByCode(S1PutCode, 2); A1.OrderSell(S1PutCode, Vol1, S1xPutPrice, 0); Main.MessageLog("합성선물매도청산"); } } 2.1번의 식에다가 아래 easy language 식을 넣고 싶습니다. var : c2(0,Data2); var : n(0); c2 = Data2(c); if c2>0 Then n=ceiling(c2*7/2.5); if c2>1 Then n=ceiling(c2*5/2.5); if c2>2 Then n=ceiling(c2*4/2.5); if c2>3 Then n=ceiling(c2*3/2.5); if c2>7 Then n=ceiling(c2*2.5/2.5); #Plot1(n); 3. 여기서 문제가 메뉴얼에는 data2 부터 쓰라고 나와있는데 사진처럼 data1 써도 상관없는거죠? data1에서 datamanager 불러지던데요. "888"은 data manager의 data 입니다. 감사합니다.