커뮤니티

수식문의

프로필 이미지
softtoug
2018-07-08 21:25:40
161
글번호 120350
답변완료
안녕하세요 1. 하기 수식에서 몇가지 전략을 추가하고 싶은데, 적용이 되지 않고 있습니다. 검토 부탁드립니다. input : Period(20),dv(2); input : ADXP(14); var : ADXv(0,data1),DP(0,data1),DM(0,data1); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); ADXv = data1(ADX(ADXP)); DP = data1(DiPlus(ADXP)); DM = data1(DiMinus(ADXP)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] and DP < ADXv Then { T = 0; sell("s4"); } if T == 2 and T != T[1] and DM < ADXv Then { T = 0; buy("b4"); } if MarketPosition == 1 and CrossDown(C,bbdn1) Then exitlong(); if MarketPosition == -1 and CrossUp(C,bbup1) Then ExitShort(); 상기 수식에 하기 전략을 추가하고 싶습니다. var1 = ADX(P); if H >= BBup and BBup >=L Then Condition1 = true; Else Condition1 = false; if H >= BBdn and BBdn >=L Then Condition2 = true; Else Condition2 = false; if (Condition1 == true or Condition1[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C < O and C[1] > O[1] Then sell("s3"); if (Condition2 == true or Condition2[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C > O and C[1] < O[1] Then buy("b3"); var1 = ADX(P); if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then { buy("b1"); } if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then { sell("s1"); } value1 = MACD(short, long); value2 = ema(value1, Period); # 매수/매도청산 If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then { buy("b2"); } # 매도/매수청산 If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then { sell("s2"); } 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-07-09 10:12:20

안녕하세요 예스스탁입니다. input : Period(20),dv(2); input : ADXP(14); input : short(12),long(26),sig(9); var : ADXv(0,data1),DP(0,data1),DM(0,data1); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1),cond1(false,data1),cond2(false,data1); var : MACDV(0,data1),MACDS(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); ADXv = data1(ADX(ADXP)); DP = data1(DiPlus(ADXP)); DM = data1(DiMinus(ADXP)); MACDV = data1(MACD(short, long)); MACDS = data1(ema(MACDV, Period)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] and DP < ADXv Then { T = 0; sell("s4"); } if T == 2 and T != T[1] and DM < ADXv Then { T = 0; buy("b4"); } if MarketPosition == 1 and CrossDown(C,bbdn1) Then exitlong(); if MarketPosition == -1 and CrossUp(C,bbup1) Then ExitShort(); if H >= BBup1 and BBup1 >=L Then Cond1 = true; Else Cond1 = false; if H >= BBdn1 and BBdn1 >=L Then Cond2 = true; Else Cond2 = false; if (Cond1 == true or Cond1[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C < O and C[1] > O[1] Then sell("s3"); if (Cond2 == true or Cond2[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C > O and C[1] < O[1] Then buy("b3"); if adxv >= adxv[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup1 and BBup1 >= L Then { buy("b1"); } if adxv >= adxv[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdn1 and BBdn1 >= L Then { sell("s1"); } # 매수/매도청산 If CrossUP(MACDV, MACDS) and C <= bbmd1-PriceScale*10 Then { buy("b2"); } # 매도/매수청산 If CrossDown(MACDV, MACDS) and C >= bbmd1+PriceScale*10 Then { sell("s2"); } 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 수식문의 > 안녕하세요 1. 하기 수식에서 몇가지 전략을 추가하고 싶은데, 적용이 되지 않고 있습니다. 검토 부탁드립니다. input : Period(20),dv(2); input : ADXP(14); var : ADXv(0,data1),DP(0,data1),DM(0,data1); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); ADXv = data1(ADX(ADXP)); DP = data1(DiPlus(ADXP)); DM = data1(DiMinus(ADXP)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] and DP < ADXv Then { T = 0; sell("s4"); } if T == 2 and T != T[1] and DM < ADXv Then { T = 0; buy("b4"); } if MarketPosition == 1 and CrossDown(C,bbdn1) Then exitlong(); if MarketPosition == -1 and CrossUp(C,bbup1) Then ExitShort(); 상기 수식에 하기 전략을 추가하고 싶습니다. var1 = ADX(P); if H >= BBup and BBup >=L Then Condition1 = true; Else Condition1 = false; if H >= BBdn and BBdn >=L Then Condition2 = true; Else Condition2 = false; if (Condition1 == true or Condition1[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C < O and C[1] > O[1] Then sell("s3"); if (Condition2 == true or Condition2[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C > O and C[1] < O[1] Then buy("b3"); var1 = ADX(P); if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then { buy("b1"); } if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then { sell("s1"); } value1 = MACD(short, long); value2 = ema(value1, Period); # 매수/매도청산 If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then { buy("b2"); } # 매도/매수청산 If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then { sell("s2"); } 감사합니다.