예스스탁
예스스탁 답변
2022-05-12 13:14:01
안녕하세요
예스스탁입니다.
올리신 내용에 별도로 반복문으로 처리할만한 내용이 없습니다.
현재와 같이 나열해서 작성하셔야 합니다.
for문을 숫자값을 증감시켜 한봉에서 여러번 수행해야 하는데
올리신 내용에 숫자값을 지정해 호출할수 있는 값이 없고
L01~L10을 배열변수로 처리해도 각각 조건만족시 신호가 발생해야 하는 내용으로
for문으로 처리할수 없습니다.
즐거운 하루되세요
> jshwang2 님이 쓴 글입니다.
> 제목 : 수식문의드립니다
> 안녕하세요~
아래 수식을 반복문으로 단순화하고 싶은데 어떻게 해야할까요??
우선은 수식상의 L01 ~ L10까지만 해서 만들었는데, L을 2~30개 정도 쓰고싶어서요...
input의 Lxx는 수기로 입력하고
시스템상의 반복적으로 입력된 부분들을 조건문 사용해 줄이는데 도움 주시면 감사하겠습니다
--------------------
input : IB(2), OB(2), ML(15), L01(12490), L02(12460), L03(12430), L04(12400), L05(12370), L06(12340), L07(12310), L08(12280), L09(12250), L10(12220);
var : Bsystem(true), Ssystem(true);
//if C > L5 Then Ssystem = False;
//if C < L5 Then Ssystem = true;
// 매수진입 조건
if Bsystem == true Then
{
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");
if MarketPosition == 0 && CrossDown(C, L01+ML) Then condition11 = true;
if MarketPosition == 0 && CrossDown(C, L02+ML) Then condition12 = true;
if MarketPosition == 0 && CrossDown(C, L03+ML) Then condition13 = true;
if MarketPosition == 0 && CrossDown(C, L04+ML) Then condition14 = true;
if MarketPosition == 0 && CrossDown(C, L05+ML) Then condition15 = true;
if MarketPosition == 0 && CrossDown(C, L06+ML) Then condition16 = true;
if MarketPosition == 0 && CrossDown(C, L07+ML) Then condition17 = true;
if MarketPosition == 0 && CrossDown(C, L08+ML) Then condition18 = true;
if MarketPosition == 0 && CrossDown(C, L09+ML) Then condition19 = true;
if MarketPosition == 0 && CrossDown(C, L10+ML) Then condition10 = true;
if CrossDown(L, L01) Then condition11 = False;
if CrossDown(L, L02) Then condition12 = False;
if CrossDown(L, L03) Then condition13 = False;
if CrossDown(L, L04) Then condition14 = False;
if CrossDown(L, L05) Then condition15 = False;
if CrossDown(L, L06) Then condition16 = False;
if CrossDown(L, L07) Then condition17 = False;
if CrossDown(L, L08) Then condition18 = False;
if CrossDown(L, L09) Then condition19 = False;
if CrossDown(L, L10) Then condition10 = False;
}
//매도진입 조건
if Ssystem == true Then
{
if MarketPosition == 0 && Condition21 == true && H >= L01 && C > L01-IB && C < L01+OB Then Sell("s01");
if MarketPosition == 0 && Condition22 == true && H >= L02 && C > L02-IB && C < L02+OB Then Sell("s02");
if MarketPosition == 0 && Condition23 == true && H >= L03 && C > L03-IB && C < L03+OB Then Sell("s03");
if MarketPosition == 0 && Condition24 == true && H >= L04 && C > L04-IB && C < L04+OB Then Sell("s04");
if MarketPosition == 0 && Condition25 == true && H >= L05 && C > L05-IB && C < L05+OB Then Sell("s05");
if MarketPosition == 0 && Condition26 == true && H >= L06 && C > L06-IB && C < L06+OB Then Sell("s06");
if MarketPosition == 0 && Condition27 == true && H >= L07 && C > L07-IB && C < L07+OB Then Sell("s07");
if MarketPosition == 0 && Condition28 == true && H >= L08 && C > L08-IB && C < L08+OB Then Sell("s08");
if MarketPosition == 0 && Condition29 == true && H >= L09 && C > L09-IB && C < L09+OB Then Sell("s09");
if MarketPosition == 0 && Condition20 == true && H >= L10 && C > L10-IB && C < L10+OB Then Sell("s10");
if MarketPosition == 0 && CrossUp(C, L01-ML) Then condition21 = true;
if MarketPosition == 0 && CrossUp(C, L02-ML) Then condition22 = true;
if MarketPosition == 0 && CrossUp(C, L03-ML) Then condition23 = true;
if MarketPosition == 0 && CrossUp(C, L04-ML) Then condition24 = true;
if MarketPosition == 0 && CrossUp(C, L05-ML) Then condition25 = true;
if MarketPosition == 0 && CrossUp(C, L06-ML) Then condition26 = true;
if MarketPosition == 0 && CrossUp(C, L07-ML) Then condition27 = true;
if MarketPosition == 0 && CrossUp(C, L08-ML) Then condition28 = true;
if MarketPosition == 0 && CrossUp(C, L09-ML) Then condition29 = true;
if MarketPosition == 0 && CrossUp(C, L10-ML) Then condition20 = true;
if CrossUp(H, L01) Then Condition21 = False;
if CrossUp(H, L02) Then Condition22 = False;
if CrossUp(H, L03) Then Condition23 = False;
if CrossUp(H, L04) Then Condition24 = False;
if CrossUp(H, L05) Then Condition25 = False;
if CrossUp(H, L06) Then Condition26 = False;
if CrossUp(H, L07) Then Condition27 = False;
if CrossUp(H, L08) Then Condition28 = False;
if CrossUp(H, L09) Then Condition29 = False;
if CrossUp(H, L10) Then Condition20 = False;
}
// 청산
if C < L01+ML && C > L01-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL01-1",AtLimit,L01+ML);
ExitLong("exitL01-2",AtStop,L01-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS01-1",AtLimit,L01-ML);
ExitShort("exitS01-2",AtStop,L01+ML);
}
}
if C < L02+ML && C > L02-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL02-1",AtLimit,L02+ML);
ExitLong("exitL02-2",AtStop,L02-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS02-1",AtLimit,L02-ML);
ExitShort("exitS02-2",AtStop,L02+ML);
}
}
if C < L03+ML && C > L03-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL03-1",AtLimit,L03+ML);
ExitLong("exitL03-2",AtStop,L03-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS03-1",AtLimit,L03-ML);
ExitShort("exitS03-2",AtStop,L03+ML);
}
}
if C < L04+ML && C > L04-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL04-1",AtLimit,L04+ML);
ExitLong("exitL04-2",AtStop,L04-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS04-1",AtLimit,L04-ML);
ExitShort("exitS04-2",AtStop,L04+ML);
}
}
if C < L05+ML && C > L05-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL05-1",AtLimit,L05+ML);
ExitLong("exitL05-2",AtStop,L05-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS05-1",AtLimit,L05-ML);
ExitShort("exitS05-2",AtStop,L05+ML);
}
}
if C < L06+ML && C > L06-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL06-1",AtLimit,L06+ML);
ExitLong("exitL06-2",AtStop,L06-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS06-1",AtLimit,L06-ML);
ExitShort("exitS06-2",AtStop,L06+ML);
}
}
if C < L07+ML && C > L07-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL07-1",AtLimit,L07+ML);
ExitLong("exitL07-2",AtStop,L07-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS07-1",AtLimit,L07-ML);
ExitShort("exitS07-2",AtStop,L07+ML);
}
}
if C < L08+ML && C > L08-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL08-1",AtLimit,L08+ML);
ExitLong("exitL08-2",AtStop,L08-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS08-1",AtLimit,L08-ML);
ExitShort("exitS08-2",AtStop,L08+ML);
}
}
if C < L09+ML && C > L09-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL09-1",AtLimit,L09+ML);
ExitLong("exitL09-2",AtStop,L09-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS09-1",AtLimit,L09-ML);
ExitShort("exitS09-2",AtStop,L09+ML);
}
}
if C < L10+ML && C > L10-ML Then
{
if MarketPosition == 1 Then
{
ExitLong("exitL10-1",AtLimit,L10+ML);
ExitLong("exitL10-2",AtStop,L10-ML);
}
if MarketPosition == -1 Then
{
ExitShort("exitS10-1",AtLimit,L10-ML);
ExitShort("exitS10-2",AtStop,L10+ML);
}
}