커뮤니티

범위 수식

프로필 이미지
새로운세상
2019-12-18 20:16:29
3254
글번호 225109
답변완료
안녕하세요 스팟에서 다음 수식을 간략히 할 수 있는 방법이 있으면 부탁드립니다. (282.25 < MarketData1.current && MarketData1.current < 282.75) || (279.75 < MarketData1.current && MarketData1.current < 280.25) || (277.25 < MarketData1.current && MarketData1.current < 277.75) 위와 같이 범위가 2.5 단위로 반복되는 수식이 있습니다. 범위는 최고 (399.75 < MarketData1.current && MarketData1.current < 400.25) 이고, 최저 (99.75 < MarketData1.current && MarketData1.current < 100.25) 입니다 1) 위의 내용을 Frange 라는 변수를 사용하여, Frange 가 true 일 때 작동하라는 수식으로 변경하고 싶습니다 2) YT에 9시 이전에 접속하였을 경우에만 수식이 작동하도록 하는 방법이 있을지요? (즉, 9시 이전에는 재접속해도 수식 작동하고, 9시이후에는 비정상 종료 등으로 장중 YT에 재접속할 경우 수식 작동 안함) 3) '월물옵션이 1월물이 아니라면' 수식 작동 function Main_OnStart() { Main.MessageList("MarketData1.current 범위 test"); Main.SetTimer(1, 60*1000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true) { Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current); } } 이상입니다 감사합니다 !!
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2019-12-30 16:36:17

안녕하세요 예스스탁입니다. 1 function Main_OnStart() { Main.MessageList("MarketData1.current 범위 test"); Main.SetTimer(1, 1*1000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Frange = false; var step = (399.75-99.75)/2.5; for (var i = 0; i <= step; i++) { var v1 = 99.75+2.5*i; var v2 = v1+0.5; if (v1 < MarketData1.current && MarketData1.current < v2) { Frange = true; } } if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true) { Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current); } } 2 차트에 적용된 시스템은 해당 부분을 감지할수 없습니다. 스팟수식이면 아래와 같이 OnStart시점에 시간조건 체크해서 해당 변수가 true일때만 수행하도록 조건문에 넣으주시면 됩니다. function Main_OnStart() { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //run은 true run = true; if (HHMMSS > 90000) { //9시 이후이면 run은 false run = false; } } function Main_이벤트 { if (run == true) { 조건문과 실행문들 } } 3 종목코드에서 5번째 자리의 값을 이용하면 될것 같습니다. var run; function Main_OnStart() { var SS = Option1.GetATMCallRecent(0); Main.MessageList("5번쨰글자:",SS.substr(4,1));//첫글자의 인덱스는 0 run = true; if (SS.substr(4,1) != 1) { run = false; } else Main.MessageList("no"); } function Main_이벤트 { if (run == true) { 조건문과 실행문들 } } 새해 좋은 일만 가득하시길 기원합니다. > 새로운세상 님이 쓴 글입니다. > 제목 : 범위 수식 > 안녕하세요 스팟에서 다음 수식을 간략히 할 수 있는 방법이 있으면 부탁드립니다. (282.25 < MarketData1.current && MarketData1.current < 282.75) || (279.75 < MarketData1.current && MarketData1.current < 280.25) || (277.25 < MarketData1.current && MarketData1.current < 277.75) 위와 같이 범위가 2.5 단위로 반복되는 수식이 있습니다. 범위는 최고 (399.75 < MarketData1.current && MarketData1.current < 400.25) 이고, 최저 (99.75 < MarketData1.current && MarketData1.current < 100.25) 입니다 1) 위의 내용을 Frange 라는 변수를 사용하여, Frange 가 true 일 때 작동하라는 수식으로 변경하고 싶습니다 2) YT에 9시 이전에 접속하였을 경우에만 수식이 작동하도록 하는 방법이 있을지요? (즉, 9시 이전에는 재접속해도 수식 작동하고, 9시이후에는 비정상 종료 등으로 장중 YT에 재접속할 경우 수식 작동 안함) 3) '월물옵션이 1월물이 아니라면' 수식 작동 function Main_OnStart() { Main.MessageList("MarketData1.current 범위 test"); Main.SetTimer(1, 60*1000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true) { Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current); } } 이상입니다 감사합니다 !!
프로필 이미지

새로운세상

2020-01-02 11:15:41

항상 많은 도움주셔서 감사합니다 올해도 뜻하신 바 모두 이루시고, 항상 건강하시기를 바랍니다 새해 복 많이 받으세요 !! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 범위 수식 > 안녕하세요 예스스탁입니다. 1 function Main_OnStart() { Main.MessageList("MarketData1.current 범위 test"); Main.SetTimer(1, 1*1000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Frange = false; var step = (399.75-99.75)/2.5; for (var i = 0; i <= step; i++) { var v1 = 99.75+2.5*i; var v2 = v1+0.5; if (v1 < MarketData1.current && MarketData1.current < v2) { Frange = true; } } if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true) { Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current); } } 2 차트에 적용된 시스템은 해당 부분을 감지할수 없습니다. 스팟수식이면 아래와 같이 OnStart시점에 시간조건 체크해서 해당 변수가 true일때만 수행하도록 조건문에 넣으주시면 됩니다. function Main_OnStart() { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //run은 true run = true; if (HHMMSS > 90000) { //9시 이후이면 run은 false run = false; } } function Main_이벤트 { if (run == true) { 조건문과 실행문들 } } 3 종목코드에서 5번째 자리의 값을 이용하면 될것 같습니다. var run; function Main_OnStart() { var SS = Option1.GetATMCallRecent(0); Main.MessageList("5번쨰글자:",SS.substr(4,1));//첫글자의 인덱스는 0 run = true; if (SS.substr(4,1) != 1) { run = false; } else Main.MessageList("no"); } function Main_이벤트 { if (run == true) { 조건문과 실행문들 } } 새해 좋은 일만 가득하시길 기원합니다. > 새로운세상 님이 쓴 글입니다. > 제목 : 범위 수식 > 안녕하세요 스팟에서 다음 수식을 간략히 할 수 있는 방법이 있으면 부탁드립니다. (282.25 < MarketData1.current && MarketData1.current < 282.75) || (279.75 < MarketData1.current && MarketData1.current < 280.25) || (277.25 < MarketData1.current && MarketData1.current < 277.75) 위와 같이 범위가 2.5 단위로 반복되는 수식이 있습니다. 범위는 최고 (399.75 < MarketData1.current && MarketData1.current < 400.25) 이고, 최저 (99.75 < MarketData1.current && MarketData1.current < 100.25) 입니다 1) 위의 내용을 Frange 라는 변수를 사용하여, Frange 가 true 일 때 작동하라는 수식으로 변경하고 싶습니다 2) YT에 9시 이전에 접속하였을 경우에만 수식이 작동하도록 하는 방법이 있을지요? (즉, 9시 이전에는 재접속해도 수식 작동하고, 9시이후에는 비정상 종료 등으로 장중 YT에 재접속할 경우 수식 작동 안함) 3) '월물옵션이 1월물이 아니라면' 수식 작동 function Main_OnStart() { Main.MessageList("MarketData1.current 범위 test"); Main.SetTimer(1, 60*1000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 090000 && HHMMSS < 151500 && Frange == true) { Main.MessageList(HHMMSS," Frange지수: ",MarketData1.current); } } 이상입니다 감사합니다 !!