커뮤니티

문의드립니다.

프로필 이미지
잡다백수
2018-01-07 13:24:18
208
글번호 115513
답변완료

첨부 이미지

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1.기타 Input : Period(40), dv1(2),dv2(1.5); input : 틱수(4),지난봉수(2); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if crossup(c,BBup1) Then { buysetup = true; buybase = H; buyindex = index; } } input : entryCount(1); var : count(0) ; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } if C < bbup2 then buysetup = false; if Count < entryCount then { If buysetup == true and MarketPosition == 0 and index > buyindex+ 지난봉수 Then{ buy("연습",atstop,buybase+PriceScale*틱수); } } IF crossdown(c,BBup2) then exitlong(); SetStopEndofday(); 위와 같은 수식을 썼는데요. 이미지1을 보면 연습1이라는 신호 다음날도 종가가 볼린저밴드 상단을 돌파했고 n개봉지난 봉이 고가를 n틱이상 돌파했으니 신호가 나와야 하는데요. 나오질 않습니다. 뭐가 문제인지 모르겠습니다. 위 사진 외에도 여러 군데에서 나와야 할 신호가 나오지 않았습니다. 이상해서 전에 만들어주신 것을 변형해서 이렇게 짜서 지표ㄹ 봤는데요. 3번이미지처럼 돌파할 때 고가를 저장할 때도 있고 아닐 때도 있었습니다. 무슨 규칙성이 있는 것도 아니라 이유를 모르겠네요. Input : Period(40), dv1(2),dv2(1.5); input : 틱수(4),지난봉수(2); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if crossup(c,BBup1) Then { buysetup = true; buybase = h; buyindex = index; } } if C < bbup2 then buysetup = false; If buysetup == true then var1 = buybase; plot1(var1); 2. 기타 코딩부탁드립니다. -장시작후 3개봉의 길이가 n 이상이면 buysetup false -첫봉이 장대음봉(첫봉의 길이가 n이상의 음봉이면 장대음봉이라고 규정)이면 buysetup false -셋업이 된 뒤 양봉의 갯수, 음봉의 갯수. -진입한 뒤 5봉동안 고가를 돌파하지 못하면 청산. 3. 기타 1번 수식에서 당일진입제한 수식을 빼봤더니 이미지 2번처럼 바로 2번진입을 했습니다. 예상키로는 처음 셋업한 봉을 기준으로 하다보니 그런 것 같은데요. 만약에 진입과 청산을 한 뒤에 새로 볼린저밴드를 돌파한 뒤 새롭게 셋업을 하려면 어떻게 수식을 고쳐야 하나요? 당일청산전략으로 하려 합니다. 4. '첫봉이 양봉이면' 이란 조건을 이렇게 추가시켜봤는데요. 그림처럼 음봉일 때가 나올 때가 몇번씩 나타났습니다. 제가 제대로 코딩을 한 것인가요? Input : Period(40), dv1(2),dv2(0.7); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); if bdate != bdate[1] then{ var1 = 0; var2 = 0;} if dayindex == 0 then var1 = C; var2 = O; if CrossUp(c,BBup1) and var1 > var2 then buy(); if CrossDown(c,BBup2) then exitlong();
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-01-08 16:19:50

안녕하세요 예스스탁입니다. 1 IF bdate != bdate[1] Then{ #첫봉 Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if crossup(c,BBup1) Then {#종가가 상단을 상향돌파 buysetup = true; buybase = h; buyindex = index; } } 첫봉이 상향돌파봉(종가가 볼밴상단보다 크고 전봉은 작음)일때만 신호가 발생합니다. 첫봉이 상향돌파봉이 아니면 Buysetup은 true가 되지 안아 신호가 발생하지 않습니다. 상향돌파가 아닌 첫봉의 종가가 상단보다 크다이맨 아래와 같이 변경하셔야 합니다. IF bdate != bdate[1] Then{#첫봉에서 Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if c > BBup1 Then { #종가가 상단보다 크다 buysetup = true; buybase = h; buyindex = index; } } 꼭 첫봉만 의미하지 않을경우에는 상향돌파 조건과 첫봉의 if문을 별도로 처리해야 합니다. IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; } if crossup(c,BBup1) Then { buysetup = true; buybase = H; buyindex = index; } 2 셋업조건이 어떤 내용인지 모르겠습니다. false로 만드는 내용만 있고 셋업조건이 없습니다. 내용 보강하셔서 다시 올려주시기 바랍니다. 3 Input : Period(40), dv1(2),dv2(1.5); input : 틱수(4),지난봉수(2); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); input : entryCount(1); var : count(0); #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; } if crossup(c,BBup1) Then { buysetup = true; buybase = h; buyindex = index; } if C < bbup1 then buysetup = false; if Count < entryCount then { If buysetup == true and MarketPosition == 0 and index > buyindex+ 지난봉수 Then{ buy("연습",atstop,buybase+PriceScale*틱수); } } IF crossdown(c,BBup2) then exitlong(); SetStopEndofday(); 4 if bdate != bdate[1] then{ //첫봉 var1 = 0; var2 = 0;} if dayindex == 0 then //첫봉 var1 = C; var2 = O; 위 수식에서 if dayindex == 0 then var1 = C; var2 = O; 부분이 문제가 됩니다. if문에 소속되는 실행문이 2개 이상이면 {}로 묶어 주어야 합니다 또한 첫봉이라는 표현이 불필요하게 2번이나 사용되었습니다. 아래와 같이 작성해 사용하시면 됩니다. Input : Period(40), dv1(2),dv2(0.7); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); if bdate != bdate[1] then{ var1 = C; var2 = O; } if CrossUp(c,BBup1) and var1 > var2 then buy(); if CrossDown(c,BBup2) then exitlong(); 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 문의드립니다. > 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1.기타 Input : Period(40), dv1(2),dv2(1.5); input : 틱수(4),지난봉수(2); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if crossup(c,BBup1) Then { buysetup = true; buybase = H; buyindex = index; } } input : entryCount(1); var : count(0) ; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } if C < bbup2 then buysetup = false; if Count < entryCount then { If buysetup == true and MarketPosition == 0 and index > buyindex+ 지난봉수 Then{ buy("연습",atstop,buybase+PriceScale*틱수); } } IF crossdown(c,BBup2) then exitlong(); SetStopEndofday(); 위와 같은 수식을 썼는데요. 이미지1을 보면 연습1이라는 신호 다음날도 종가가 볼린저밴드 상단을 돌파했고 n개봉지난 봉이 고가를 n틱이상 돌파했으니 신호가 나와야 하는데요. 나오질 않습니다. 뭐가 문제인지 모르겠습니다. 위 사진 외에도 여러 군데에서 나와야 할 신호가 나오지 않았습니다. 이상해서 전에 만들어주신 것을 변형해서 이렇게 짜서 지표ㄹ 봤는데요. 3번이미지처럼 돌파할 때 고가를 저장할 때도 있고 아닐 때도 있었습니다. 무슨 규칙성이 있는 것도 아니라 이유를 모르겠네요. Input : Period(40), dv1(2),dv2(1.5); input : 틱수(4),지난봉수(2); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); IF bdate != bdate[1] Then{ Buysetup = false; Sellsetup = false; buybase = 0; buyindex = 0; if crossup(c,BBup1) Then { buysetup = true; buybase = h; buyindex = index; } } if C < bbup2 then buysetup = false; If buysetup == true then var1 = buybase; plot1(var1); 2. 기타 코딩부탁드립니다. -장시작후 3개봉의 길이가 n 이상이면 buysetup false -첫봉이 장대음봉(첫봉의 길이가 n이상의 음봉이면 장대음봉이라고 규정)이면 buysetup false -셋업이 된 뒤 양봉의 갯수, 음봉의 갯수. -진입한 뒤 5봉동안 고가를 돌파하지 못하면 청산. 3. 기타 1번 수식에서 당일진입제한 수식을 빼봤더니 이미지 2번처럼 바로 2번진입을 했습니다. 예상키로는 처음 셋업한 봉을 기준으로 하다보니 그런 것 같은데요. 만약에 진입과 청산을 한 뒤에 새로 볼린저밴드를 돌파한 뒤 새롭게 셋업을 하려면 어떻게 수식을 고쳐야 하나요? 당일청산전략으로 하려 합니다. 4. '첫봉이 양봉이면' 이란 조건을 이렇게 추가시켜봤는데요. 그림처럼 음봉일 때가 나올 때가 몇번씩 나타났습니다. 제가 제대로 코딩을 한 것인가요? Input : Period(40), dv1(2),dv2(0.7); var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); BBup1 = BollBandUp(Period,dv1); BBdn1 = BollBandDown(Period,dv1); BBup2 = BollBandUp(Period,Dv2); BBdn2 = BollBandDown(Period,Dv2); if bdate != bdate[1] then{ var1 = 0; var2 = 0;} if dayindex == 0 then var1 = C; var2 = O; if CrossUp(c,BBup1) and var1 > var2 then buy(); if CrossDown(c,BBup2) then exitlong();