커뮤니티

문의드립니다.

프로필 이미지
종호
2025-10-16 18:40:49.0
80
글번호 226962
답변완료

안녕하세요.

시스템 수식을 부탁드립니다.

매수조건1 성립:

무포지션이거나 매도 포지션이면 매수조건1=0 으로 합니다.

음봉이 발생하고 이후에 발생한 4봉만을 기준으로 합니다.

4봉안에서 양봉이 3개이상 발생해야 합니다.

최초 양봉 종가 < 2번째 양봉 종가 < 3번째 양봉 종가 이어야 합니다.

4봉안에서 위의 조건을 만족하는 3개의 양봉 출현 전에 음봉이 발생한다고 하면

발생한 음봉 종가는 위의 최초양봉 시가보다 커야 합니다.

이런 조건을 다 만족하면 매수조건1 은 성립한다고 정의 합니다.

물론 4봉안에서 음봉이 발생하지 않고 최초 양봉 종가 < 2번째 양봉 종가 < 3번째 양봉 종가

양봉이 나와도 4봉째를 기다리지 않고 바로 매수조건1 =1 로 하고 비로서 매수조건1 은 성립이 됩니다.


매수조건2:

매수조건1 =1 성립되는 순간의 양봉이나

매수조건1 =1 성립된 이후의 양봉에서

양봉종가> 볼린저밴드 하단선 +20틱  되면( 볼린저밴드는 20이평,2 편차 기본셋팅 사용)

매수조건2=1 로 정의합니다.


매수조건2=1 일 때 해지 조건:

음봉이던지 양봉던지 관계없이 종가가 볼린저밴드 하단선 +20틱 아래로  3번 있게되면  

매수조건2 =0

매수조건1 =0 으로 모두 조건이 해지됩니다.


매수조건2=1 일 때 매수 조건 :

매수조건2=1 을 만족할 때

현재봉 양봉종가 > 볼린저밴드 하단선 +20틱  and  (바로직전봉이 양봉일시)  바로 직전 첫째봉 양봉 종가 > 볼린저밴드 하단선 +20틱   이면 매수하고

또는

현재봉 양봉종가 > 볼린저밴드 하단선 +20틱  and   (바로직전봉이 음봉이고  직전 2번째봉이  양봉이면) 직전 2번째봉 양봉종가 >  볼린저밴드 하단선 +20틱   이면 매수하고  

또는

매수조건2=1 을 만족한 이후에 음봉이 발생하고 발생하는 음봉 시가 < 다음봉 양봉 종가 일 때도 매수하고

또는

매수조건2=1 을 만족한 이후에 첫양봉종가< 2번째 양봉 종가 를  만족하는 양봉이 2연속 발생시도 매수합니다.



매수후 손절청산:

매수후  매수봉 저가를 현재가가 하방 이탈시 즉시 손절 청산합니다.

매수후  이익청산:

매수후  양봉종가> 매수봉 종가 되면 이익청산 합니다.

매도수식 : 반대논리로 부탁드립니다.


시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-17 11:09:06.0

안녕하세요
예스스탁입니다.

input : Period(20),dv(2); var : i(0),B(0),Bi(0),S(0),Si(0); var : BBup(0),BBmd(0),BBdn(0); BBup = BollBandUp(Period,dv); BBmd = ma(c,Period); BBdn = BollBandDown(Period,dv); if MarketPosition <= 0 Then { if CountIf(MarketPosition<=0,4)== 4 and C[3]<O[3] and CountIf(C>O and C>C[1],3) == 3 Then { B = 1; Bi = Index; } if CountIf(MarketPosition<=0,5)== 5 and C[4]<O[4] and C[3]>O[3] and C>O and CountIf(C>O,4) == 3 Then { var1 = O[4]; var2 = 0; Condition1 = False; For i = 3 downto 0 { if C[i] < O[i] and C[i] < var1 Then Condition1 = true; if C[i] > O[i] Then { if var2 > 0 and C[i] < var2 Then Condition1 = true; var2 = C[i]; } } if Condition1 == False Then { B = 1; Bi = Index; } } if B == 1 and CountIf(C<BBdn+PriceScale*20,3) == 3 Then B = 0; if B == 1 and C > O and C > bbdn+PriceScale*20 Then { if C[1] > O[1] and C[1] > BBdn[1]+PriceScale*20 Then { B = 2; Buy("b1"); } if C[1] < O[1] and C[2] > O[2] and C[2] > BBdn[2]+PriceScale*20 Then { B = 2; Buy("b2"); } } if B == 1 and Index > bi Then { if C > O and C[1] < O[1] and C > O[1] Then { B = 2; Buy("b3"); } if CountIf(C>O and C > C[1],2) == 2 Then { B = 2; Buy("b4"); } } } if MarketPosition == 1 Then { B = 0; ExitLong("bx1",AtStop,L[즐BarsSinceEntry]); if c > O and C > C[BarsSinceEntry] Then ExitLong("bx2"); } if MarketPosition >= 0 Then { if CountIf(MarketPosition>=0,4)== 4 and C[3]>O[3] and CountIf(C<O and C<C[1],3) == 3 Then { S = 1; Si = Index; } if CountIf(MarketPosition>=0,5)== 5 and C[4]>O[4] and C[3]<O[3] and C<O and CountIf(C<O,4) == 3 Then { var3 = O[4]; var4 = 0; Condition2 = False; For i = 3 downto 0 { if C[i] > O[i] and C[i] > var3 Then Condition2 = true; if C[i] < O[i] Then { if var4 > 0 and C[i] > var4 Then Condition2 = true; var4 = C[i]; } } if Condition2 == False Then { S = 1; Si = Index; } } if S == 1 and CountIf(C>BBup-PriceScale*20,3) == 3 Then S = 0; if S == 1 and C < O and C < bbup-PriceScale*20 Then { if C[1] < O[1] and C[1] < BBup[1]-PriceScale*20 Then { S = 2; Sell("s1"); } if C[1] > O[1] and C[2] < O[2] and C[2] < BBup[2]-PriceScale*20 Then { S = 2; Sell("s2"); } } if S == 1 and Index > Si Then { if C < O and C[1] > O[1] and C < O[1] Then { S = 2; Sell("s3"); } if CountIf(C<O and C<C[1],2) == 2 Then { S = 2; Sell("s4"); } } } if MarketPosition == -1 Then { S = 0; ExitShort("sx1",AtStop,H[BarsSinceEntry]); if C < O and C < C[BarsSinceEntry] Then ExitShort("sx2"); }

즐거운 하루되세요