커뮤니티

문의

프로필 이미지
목마와숙녀
2021-03-03 11:13:23
706
글번호 146743
답변완료
리버스거래 수식이며 피라미딩은 max 3개입니다. 문의1) b1-b2-b3-s1-s2-s3-b1-b2-b3...이런 패턴을 예상했으나 이러한 패턴을 포함하여 b1-b2-b3-s2-s3-s3-b3-b1-b2...처럼 뒤집을 때 s1보다 s2가 먼저 진입하며 피라미딩도 s2-s3-s3 처럼 s3가 중복되는 진입도 있으며 피라미딩 순서도 b3-b1-b2 처럼 순차적이 아닌 경우도 있습니다. 요청내용 첫째, 포지션을 뒤집을 때는 b1이나 s1부터 시작되고 둘째, s2-s3-s3 에서 s3 가 두번 들어가는데 동일 진입명은 피라미딩에서 제외하고 셋째, b1-b2-b3나 s1-s2-s3 처럼 순차적으로 피라미딩이 되게 수식을 수정하여 주십시요. ************************************************************************************ input:이평1(35),이평2(105),이평3(75),이평4(95); input:이평5(15),이평6(10),이평7(70),이평8(10); input:이평9(5),이평10(10),이평11(55),이평12(30); var : v1(0,data2),v2(0,data2); var : v3(0,data3),v4(0,data3); var : v5(0,data2),v6(0,data2); var : v7(0,data3),v8(0,data3); var : v9(0,data2),v10(0,data2); var : v11(0,data3),v12(0,data3); v1 = data2(ma(C,이평1)); v2 = data2(ma(C,이평2)); v3 = data3(ma(C,이평3)); v4 = data3(ma(C,이평4)); v5 = data2(ma(C,이평5)); v6 = data2(ma(C,이평6)); v7 = data3(ma(C,이평7)); v8 = data3(ma(C,이평8)); v9 = data2(ma(C,이평9)); v10 = data2(ma(C,이평10)); v11 = data3(ma(C,이평11)); v12 = data3(ma(C,이평12)); if MarketPosition <= 0 and CrossUp(v1,v2) or CrossUp(v3,v4) Then BuY("b1"); if MarketPosition == 1 and MaxEntries == 1 and CrossUp(v5,v6) or CrossUp(v7,v8) Then BuY("b2"); if MarketPosition == 1 and MaxEntries == 2 and CrossUp(v9,v10) or CrossUp(v11,v12) Then buy("b3"); if MarketPosition >= 0 and CrossDown(v1,v2) or CrossDown(v3,v4) Then Sell("s1"); if MarketPosition == -1 and MaxEntries == 1 and CrossDown(v5,v6) or CrossDown(v7,v8) Then Sell("s2"); if MarketPosition == -1 and MaxEntries == 2 and CrossDown(v9,v10) or CrossDown(v11,v12) Then Sell("s3");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-03 14:49:55

안녕하세요 예스스탁입니다. 진입의 각 조건에 ()가 되어 있지 않았었습니다. 하나의 if문에 and와 or가 같이 사용되면 조건에 ()를 쳐서 우선순위를 지정해 주셔야 합니다. if MarketPosition == 1 and MaxEntries == 1 and CrossUp(v5,v6) or CrossUp(v7,v8) Then BuY("b2"); 예를 들어 위와 같을 경우 매수포지션이고 최대진입이 1개이고 v5가 v6을 상향돌파하면 매수하거나 다른조건없이 v7이 v8을 상향돌파하면 매수하는 식이됩니다. if MarketPosition == 1 and MaxEntries == 1 and (CrossUp(v5,v6) or CrossUp(v7,v8)) Then BuY("b2"); 위와 같이 ()를 쳐서 매수포지션이고 최대진입이 1개일때 v5가 v6을 상향돌파하거나 v7이 v8을 상향돌파하면 매수하는 식으로 변경하시면 됩니다. 아래는 수정한 식입니다. input:이평1(35),이평2(105),이평3(75),이평4(95); input:이평5(15),이평6(10),이평7(70),이평8(10); input:이평9(5),이평10(10),이평11(55),이평12(30); var : v1(0,data2),v2(0,data2); var : v3(0,data3),v4(0,data3); var : v5(0,data2),v6(0,data2); var : v7(0,data3),v8(0,data3); var : v9(0,data2),v10(0,data2); var : v11(0,data3),v12(0,data3); v1 = data2(ma(C,이평1)); v2 = data2(ma(C,이평2)); v3 = data3(ma(C,이평3)); v4 = data3(ma(C,이평4)); v5 = data2(ma(C,이평5)); v6 = data2(ma(C,이평6)); v7 = data3(ma(C,이평7)); v8 = data3(ma(C,이평8)); v9 = data2(ma(C,이평9)); v10 = data2(ma(C,이평10)); v11 = data3(ma(C,이평11)); v12 = data3(ma(C,이평12)); if MarketPosition <= 0 and (CrossUp(v1,v2) or CrossUp(v3,v4)) Then BuY("b1"); if MarketPosition == 1 and MaxEntries == 1 and (CrossUp(v5,v6) or CrossUp(v7,v8)) Then BuY("b2"); if MarketPosition == 1 and MaxEntries == 2 and (CrossUp(v9,v10) or CrossUp(v11,v12)) Then buy("b3"); if MarketPosition >= 0 and (CrossDown(v1,v2) or CrossDown(v3,v4)) Then Sell("s1"); if MarketPosition == -1 and MaxEntries == 1 and (CrossDown(v5,v6) or CrossDown(v7,v8)) Then Sell("s2"); if MarketPosition == -1 and MaxEntries == 2 and (CrossDown(v9,v10) or CrossDown(v11,v12)) Then Sell("s3"); 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 문의 > 리버스거래 수식이며 피라미딩은 max 3개입니다. 문의1) b1-b2-b3-s1-s2-s3-b1-b2-b3...이런 패턴을 예상했으나 이러한 패턴을 포함하여 b1-b2-b3-s2-s3-s3-b3-b1-b2...처럼 뒤집을 때 s1보다 s2가 먼저 진입하며 피라미딩도 s2-s3-s3 처럼 s3가 중복되는 진입도 있으며 피라미딩 순서도 b3-b1-b2 처럼 순차적이 아닌 경우도 있습니다. 요청내용 첫째, 포지션을 뒤집을 때는 b1이나 s1부터 시작되고 둘째, s2-s3-s3 에서 s3 가 두번 들어가는데 동일 진입명은 피라미딩에서 제외하고 셋째, b1-b2-b3나 s1-s2-s3 처럼 순차적으로 피라미딩이 되게 수식을 수정하여 주십시요. ************************************************************************************ input:이평1(35),이평2(105),이평3(75),이평4(95); input:이평5(15),이평6(10),이평7(70),이평8(10); input:이평9(5),이평10(10),이평11(55),이평12(30); var : v1(0,data2),v2(0,data2); var : v3(0,data3),v4(0,data3); var : v5(0,data2),v6(0,data2); var : v7(0,data3),v8(0,data3); var : v9(0,data2),v10(0,data2); var : v11(0,data3),v12(0,data3); v1 = data2(ma(C,이평1)); v2 = data2(ma(C,이평2)); v3 = data3(ma(C,이평3)); v4 = data3(ma(C,이평4)); v5 = data2(ma(C,이평5)); v6 = data2(ma(C,이평6)); v7 = data3(ma(C,이평7)); v8 = data3(ma(C,이평8)); v9 = data2(ma(C,이평9)); v10 = data2(ma(C,이평10)); v11 = data3(ma(C,이평11)); v12 = data3(ma(C,이평12)); if MarketPosition <= 0 and CrossUp(v1,v2) or CrossUp(v3,v4) Then BuY("b1"); if MarketPosition == 1 and MaxEntries == 1 and CrossUp(v5,v6) or CrossUp(v7,v8) Then BuY("b2"); if MarketPosition == 1 and MaxEntries == 2 and CrossUp(v9,v10) or CrossUp(v11,v12) Then buy("b3"); if MarketPosition >= 0 and CrossDown(v1,v2) or CrossDown(v3,v4) Then Sell("s1"); if MarketPosition == -1 and MaxEntries == 1 and CrossDown(v5,v6) or CrossDown(v7,v8) Then Sell("s2"); if MarketPosition == -1 and MaxEntries == 2 and CrossDown(v9,v10) or CrossDown(v11,v12) Then Sell("s3");