안녕하세요~
아래 수식 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로 어떻게 처리하는지 몰라 일단 저렇게 표시해놨는데, 이 부분도 숫자가 똑같이 증가하도록 가르쳐주시면 감사하겠습니다
감사합니다