커뮤니티

수식문의드립니다

프로필 이미지
jshwang2
2022-05-12 22:40:16
1377
글번호 158816
답변완료
안녕하세요~ 아래 수식 array, for 활용해 줄이려고 해봤는데 한것이 맞는지 확인 및 모르는 부분 답변 부탁드리겠습니다! input : IB(1.5), OB(1.5), ML(12), L01(12163), L02(12139), L03(12115), L04(12091), L05(12067), L06(12043), L07(12019), L08(11995), L09(11973), L10(11949); var : Bsystem(true), Ssystem(true); if MarketPosition == 0 && condition11 == true && L <= L01 && C > L01-OB && C < L01+IB Then buy("b01"); if MarketPosition == 0 && condition12 == true && L <= L02 && C > L02-OB && C < L02+IB Then buy("b02"); if MarketPosition == 0 && condition13 == true && L <= L03 && C > L03-OB && C < L03+IB Then buy("b03"); if MarketPosition == 0 && condition14 == true && L <= L04 && C > L04-OB && C < L04+IB Then buy("b04"); if MarketPosition == 0 && condition15 == true && L <= L05 && C > L05-OB && C < L05+IB Then buy("b05"); if MarketPosition == 0 && condition16 == true && L <= L06 && C > L06-OB && C < L06+IB Then buy("b06"); if MarketPosition == 0 && condition17 == true && L <= L07 && C > L07-OB && C < L07+IB Then buy("b07"); if MarketPosition == 0 && condition18 == true && L <= L08 && C > L08-OB && C < L08+IB Then buy("b08"); if MarketPosition == 0 && condition19 == true && L <= L09 && C > L09-OB && C < L09+IB Then buy("b09"); if MarketPosition == 0 && condition10 == true && L <= L10 && C > L10-OB && C < L10+IB Then buy("b10"); 1. input의 L1, L2, L3, ... 자동계산 (등간격, array 활용) var : i(0); array : LL[9](0); LL[5] = 12067; For i = 0 to 5 {LL[4-i] = LL[5-i] + 2*ML;} For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;} => 중앙값 LL[5] 입력시, 위아래 등간격으로 자동 계산 => 맞는지 확인 부탁드립니다 2. condition11, condition12, condition13, ... 한번에 처리 array : BC[9](False); => 이렇게 array 설정해 false 입력하면 실행문의 condition과 동일하게 처리되는지 확인 부탁드립니다 3. 실행문 반복문 처리 위에 1, 2가 맞다는 전제하에 var : i(0); array : LL[9](0), BC[9](False); LL[5] = 12067; For i = 0 to 5 {LL[4-i] = LL[5-i] + 2*ML;} For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;} for i = 0 to 9 { if marketposition == 0 && BC[i] == true && L <= L[i] && C > L[i]-OB && C < L[i]+IB then buy("b{i}"); } => 상단의 실행문을 이렇게 반복문으로 바꾸는게 맞는지 확인 부탁드립니다 => buy("b{i}") 이 부분은 문자열인 "b01", "b02", "b03", ... 을 i로 어떻게 처리하는지 몰라 일단 저렇게 표시해놨는데, 이 부분도 숫자가 똑같이 증가하도록 가르쳐주시면 감사하겠습니다 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-05-13 11:01:54

안녕하세요 예스스탁입니다. 1 예 맞습니다. 다만 For i = 0 to 5 {LL[4-i] = LL[5-i] + 2*ML;} 위 내용은 4까지만 수행하게 하시면 됩니다. i에 5가 할당되면 배열방이 존재하지 않는 -1번방이 됩니다. 초기에 5번방에는 값이 저장되어 있으므로 4까지만 수행되게 하시면 됩니다. i = 0 to 4 {LL[4-i] = LL[5-i] + 2*ML;} 2 예 같습니다. 3 조건식은 해당 내용과 같이 반복문 처리하시면 되지만 Buy의 이름은 아마 가변적으로 변경되게 지정하실 의도로 "b{i}"로 작성하신것 같습니다. 하지만 신호의 이름은 가변적으로 가져갈수 없습니다. 고정이름으로 사용해야 합니다. 그러므로 작성하신 식에서 buy은 이름자체가 "b{i}"로 차트에 표시됩니다. 만약 작성하신 의도가 피라미딩 상황에서 한봉에 여러번 buy를 동작하는 내용이면 for문으로 불가능합니다. 하나의 Buy는 피라미딩을 한다고 해도 한봉에서 한번만 동작합니다. 식작성에 참고하시기 바랍니다. 즐거운 하루되세요 > jshwang2 님이 쓴 글입니다. > 제목 : 수식문의드립니다 > 안녕하세요~ 아래 수식 array, for 활용해 줄이려고 해봤는데 한것이 맞는지 확인 및 모르는 부분 답변 부탁드리겠습니다! input : IB(1.5), OB(1.5), ML(12), L01(12163), L02(12139), L03(12115), L04(12091), L05(12067), L06(12043), L07(12019), L08(11995), L09(11973), L10(11949); var : Bsystem(true), Ssystem(true); if MarketPosition == 0 && condition11 == true && L <= L01 && C > L01-OB && C < L01+IB Then buy("b01"); if MarketPosition == 0 && condition12 == true && L <= L02 && C > L02-OB && C < L02+IB Then buy("b02"); if MarketPosition == 0 && condition13 == true && L <= L03 && C > L03-OB && C < L03+IB Then buy("b03"); if MarketPosition == 0 && condition14 == true && L <= L04 && C > L04-OB && C < L04+IB Then buy("b04"); if MarketPosition == 0 && condition15 == true && L <= L05 && C > L05-OB && C < L05+IB Then buy("b05"); if MarketPosition == 0 && condition16 == true && L <= L06 && C > L06-OB && C < L06+IB Then buy("b06"); if MarketPosition == 0 && condition17 == true && L <= L07 && C > L07-OB && C < L07+IB Then buy("b07"); if MarketPosition == 0 && condition18 == true && L <= L08 && C > L08-OB && C < L08+IB Then buy("b08"); if MarketPosition == 0 && condition19 == true && L <= L09 && C > L09-OB && C < L09+IB Then buy("b09"); if MarketPosition == 0 && condition10 == true && L <= L10 && C > L10-OB && C < L10+IB Then buy("b10"); 1. input의 L1, L2, L3, ... 자동계산 (등간격, array 활용) var : i(0); array : LL[9](0); LL[5] = 12067; For i = 0 to 5 {LL[4-i] = LL[5-i] + 2*ML;} For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;} => 중앙값 LL[5] 입력시, 위아래 등간격으로 자동 계산 => 맞는지 확인 부탁드립니다 2. condition11, condition12, condition13, ... 한번에 처리 array : BC[9](False); => 이렇게 array 설정해 false 입력하면 실행문의 condition과 동일하게 처리되는지 확인 부탁드립니다 3. 실행문 반복문 처리 위에 1, 2가 맞다는 전제하에 var : i(0); array : LL[9](0), BC[9](False); LL[5] = 12067; For i = 0 to 5 {LL[4-i] = LL[5-i] + 2*ML;} For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;} for i = 0 to 9 { if marketposition == 0 && BC[i] == true && L <= L[i] && C > L[i]-OB && C < L[i]+IB then buy("b{i}"); } => 상단의 실행문을 이렇게 반복문으로 바꾸는게 맞는지 확인 부탁드립니다 => buy("b{i}") 이 부분은 문자열인 "b01", "b02", "b03", ... 을 i로 어떻게 처리하는지 몰라 일단 저렇게 표시해놨는데, 이 부분도 숫자가 똑같이 증가하도록 가르쳐주시면 감사하겠습니다 감사합니다