커뮤니티

수정 부탁드려요

프로필 이미지
회원
2013-02-13 20:26:50
249
글번호 59446
답변완료
보네주신 수식인데요 매수는 무조건 양선에 매도는 무조건 음봉 조건 추가 부탁드립니다 추가 진입하는 것들두요 그리고 추가 진입은 최초 진입한 b1(s1)가격보다 높은(낮은) 가격일때만 추가 진입하는 걸루요 그리고 수식 실행을 해보니까 당일 진입신호가 두개가 발생하는 경우도 있습니다 b1,b2(s1,s2) 이런경우 b1(s1) 하나만 진입할수 있게 부탁드립니다 input : ATRP(15),EN(1.5),XN(2); var : ATRV(0); var1 = highest(H,20); var2 = highest(H,55); var3 = lowest(L,10); var4 = lowest(L,20); var11 = Lowest(H,20); var12 = Lowest(H,55); var13 = highest(L,10); var14 = highest(L,20); ATRV = atr(ATRP); if MarketPosition <= 0 and CrossUp(c,var1[1]) Then buy("b1"); if MarketPosition <= 0 and CrossUp(c,var2[1]) Then buy("b2"); if MarketPosition == 1 Then{ if CurrentEntries == 1 Then{ value1 = EntryPrice+ATRV*EN; buy("bb",AtStop,value1); } if CurrentEntries == 2 then{ value2 = value1+ATRV*EN; buy("bbb",AtStop,value2); } if CrossDown(c,var3[1]) Then exitlong("b1x"); if CrossDown(c,var4[1]) Then exitlong("b2x"); if CurrentEntries == 2 Then exitlong("bx1",AtStop,value1-ATRV*XN); if CurrentEntries == 2 Then exitlong("bx2",AtStop,value2-ATRV*XN); } if MarketPosition >= 0 and CrossDown(c,var11[1]) Then Sell("s1"); if MarketPosition >= 0 and CrossDown(c,var12[1]) Then Sell("s2"); if MarketPosition == -1 Then{ if CurrentEntries == 1 Then{ value11 = EntryPrice-ATRV*EN; sell("ss",AtStop,value1); } if CurrentEntries == 2 then{ value12 = value1-ATRV*EN; sell("sss",AtStop,value2); } if CrossUp(c,var13[1]) Then ExitShort("s1x"); if CrossUp(c,var14[1]) Then ExitShort("s2x"); if CurrentEntries == 2 Then ExitShort("sx1",AtStop,value11+ATRV*XN); if CurrentEntries == 2 Then ExitShort("sx2",AtStop,value12+ATRV*XN); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-02-14 09:19:06

안녕하세요 예스스탁입니다. 추가진입하는 부분은 신호타입은 atstop으로 봉이 완성되면 다음봉의 시세가 지정한 가격이상이나 이하의 시세가 발생하면 봉미완성시에 신호가 발생하는 타입이라 신호발생봉이 양봉/음봉인지 파악하려면 봉완성시로 종가기준으로 신호가 발생되게 작성해야 합니다. 1번식은 추가매수시 현재봉이 양봉이면 다음봉의 시세를 감시하고 추가매도시 현재봉이 음봉이면 다음봉의 시세를 감시하게 작성한 식입니다. 2번식은 봉완성시로 모두 판단하도록 작성된 식입니다. 2개의 식 모두 b1과 b2, s1과 s2는 하나로 통합했습니다. 1번식 input : ATRP(15),EN(1.5),XN(2); var : ATRV(0); var1 = highest(H,20); var2 = highest(H,55); var3 = lowest(L,10); var4 = lowest(L,20); var11 = Lowest(H,20); var12 = Lowest(H,55); var13 = highest(L,10); var14 = highest(L,20); ATRV = atr(ATRP); if MarketPosition <= 0 and (CrossUp(c,var1[1]) or CrossUp(c,var2[1])) and C > O Then buy("b"); if MarketPosition == 1 Then{ if CurrentEntries == 1 and C > O and crossup(c,EntryPrice+ATRV*EN) Then{ value1 = c; buy("bb"); } if CurrentEntries == 2 and C > O and crossup(c,value1+ATRV*EN) then{ value2 = c; buy("bbb"); } if CrossDown(c,var3[1]) Then exitlong("b1x"); if CrossDown(c,var4[1]) Then exitlong("b2x"); if CurrentEntries == 2 Then exitlong("bx1",AtStop,value1-ATRV*XN); if CurrentEntries == 2 Then exitlong("bx2",AtStop,value2-ATRV*XN); } if MarketPosition >= 0 and (CrossDown(c,var11[1]) or CrossDown(c,var12[1])) and C < O Then Sell("s"); if MarketPosition == -1 Then{ if CurrentEntries == 1 and C < O and CrossDown(c,EntryPrice-ATRV*EN) Then{ value11 = c; sell("ss"); } if CurrentEntries == 2 and C < O and CrossDown(c,value1-ATRV*EN) then{ value12 = c; sell("sss"); } if CrossUp(c,var13[1]) Then ExitShort("s1x"); if CrossUp(c,var14[1]) Then ExitShort("s2x"); if CurrentEntries == 2 Then ExitShort("sx1",AtStop,value11+ATRV*XN); if CurrentEntries == 2 Then ExitShort("sx2",AtStop,value12+ATRV*XN); } 2번식 input : ATRP(15),EN(1.5),XN(2); var : ATRV(0); var1 = highest(H,20); var2 = highest(H,55); var3 = lowest(L,10); var4 = lowest(L,20); var11 = Lowest(H,20); var12 = Lowest(H,55); var13 = highest(L,10); var14 = highest(L,20); ATRV = atr(ATRP); if MarketPosition <= 0 and (CrossUp(c,var1[1]) or CrossUp(c,var2[1])) and C > O Then buy("b"); if MarketPosition == 1 Then{ if CurrentEntries == 1 and C > O Then{ value1 = EntryPrice+ATRV*EN; buy("bb",AtStop,value1); } if CurrentEntries == 2 and C > O then{ value2 = value1+ATRV*EN; buy("bbb",AtStop,value2); } if CrossDown(c,var3[1]) Then exitlong("b1x"); if CrossDown(c,var4[1]) Then exitlong("b2x"); if CurrentEntries == 2 Then exitlong("bx1",AtStop,value1-ATRV*XN); if CurrentEntries == 2 Then exitlong("bx2",AtStop,value2-ATRV*XN); } if MarketPosition >= 0 and (CrossDown(c,var11[1]) or CrossDown(c,var12[1])) and C < O Then Sell("s"); if MarketPosition == -1 Then{ if CurrentEntries == 1 and C < O Then{ value11 = EntryPrice-ATRV*EN; sell("ss",AtStop,value1); } if CurrentEntries == 2 and C < O then{ value12 = value1-ATRV*EN; sell("sss",AtStop,value2); } if CrossUp(c,var13[1]) Then ExitShort("s1x"); if CrossUp(c,var14[1]) Then ExitShort("s2x"); if CurrentEntries == 2 Then ExitShort("sx1",AtStop,value11+ATRV*XN); if CurrentEntries == 2 Then ExitShort("sx2",AtStop,value12+ATRV*XN); } 즐거운 하루되세요 > HI_knp116 님이 쓴 글입니다. > 제목 : 수정 부탁드려요 > 보네주신 수식인데요 매수는 무조건 양선에 매도는 무조건 음봉 조건 추가 부탁드립니다 추가 진입하는 것들두요 그리고 추가 진입은 최초 진입한 b1(s1)가격보다 높은(낮은) 가격일때만 추가 진입하는 걸루요 그리고 수식 실행을 해보니까 당일 진입신호가 두개가 발생하는 경우도 있습니다 b1,b2(s1,s2) 이런경우 b1(s1) 하나만 진입할수 있게 부탁드립니다 input : ATRP(15),EN(1.5),XN(2); var : ATRV(0); var1 = highest(H,20); var2 = highest(H,55); var3 = lowest(L,10); var4 = lowest(L,20); var11 = Lowest(H,20); var12 = Lowest(H,55); var13 = highest(L,10); var14 = highest(L,20); ATRV = atr(ATRP); if MarketPosition <= 0 and CrossUp(c,var1[1]) Then buy("b1"); if MarketPosition <= 0 and CrossUp(c,var2[1]) Then buy("b2"); if MarketPosition == 1 Then{ if CurrentEntries == 1 Then{ value1 = EntryPrice+ATRV*EN; buy("bb",AtStop,value1); } if CurrentEntries == 2 then{ value2 = value1+ATRV*EN; buy("bbb",AtStop,value2); } if CrossDown(c,var3[1]) Then exitlong("b1x"); if CrossDown(c,var4[1]) Then exitlong("b2x"); if CurrentEntries == 2 Then exitlong("bx1",AtStop,value1-ATRV*XN); if CurrentEntries == 2 Then exitlong("bx2",AtStop,value2-ATRV*XN); } if MarketPosition >= 0 and CrossDown(c,var11[1]) Then Sell("s1"); if MarketPosition >= 0 and CrossDown(c,var12[1]) Then Sell("s2"); if MarketPosition == -1 Then{ if CurrentEntries == 1 Then{ value11 = EntryPrice-ATRV*EN; sell("ss",AtStop,value1); } if CurrentEntries == 2 then{ value12 = value1-ATRV*EN; sell("sss",AtStop,value2); } if CrossUp(c,var13[1]) Then ExitShort("s1x"); if CrossUp(c,var14[1]) Then ExitShort("s2x"); if CurrentEntries == 2 Then ExitShort("sx1",AtStop,value11+ATRV*XN); if CurrentEntries == 2 Then ExitShort("sx2",AtStop,value12+ATRV*XN); }