커뮤니티

양준모 질문 12

프로필 이미지
회원
2013-03-14 18:14:09
186
글번호 60729
답변완료
안녕하세요 질문1 아래식은 하루 두번은 꼭 주문이 있을법한데 왜 10년이 두번만 신호발생하는지요 아래식 뭐가 문제인지? 하루 두번 신호 나오려면 뭘 수정해야 되는지요 ??? var : ma1(0),ma2(0),Hval(0),Lval(0),cnt(0,data2),count(0,data2); var : Bbup(0,data2),BBdn(0,data2),LRSv(0,data2),SMAO(0,data2),Wmao(0,data2); var : LowestV(0,data2),HighestV(0,data2),FK(0,data2),Stok3(0,data2),Stod3(0,data2),StoOsc(0,data2); var : LRSVL(0,data2),SmaoL(0,data2),WmaoL(0,data2),StoOscL(0,data2); var : LRSVH(0,data2),SmaoH(0,data2),WmaoH(0,data2),StoOscH(0,data2); var : mav1(0,data3),mav2(0,data3),stok1(0,data3),stod1(0,data3),stok2(0,data3),stod2(0,data3); ma1 = ma(c,5); # 1분봉의 5이동평균 ma2 = ma(c,20); # 1분봉의 20이동평균 BBup = data2(BollBandUp(20,1.5)); # 60분봉의 볼린져밴드상단 20,1.5 BBdn = data2(BollBandUp(20,1.5)); # 60분봉의 볼린져밴드하단 20,1.5 LRSv = data2(LRS(c,14)); # 60분봉의 LRS 14 Smao = data2(ma(C,5))-data2(ma(C,20)); # 60분봉의 단순 MAO 5,20 Wmao = data2(wma(C,8))-data2(wma(C,32)); # 60분봉의 가중 MAO 8,32 ## 60분봉의 가중 스토케스틱 오실레이터 계산 LowestV = data2(Lowest(L, 12)); HighestV = data2(Highest(H, 12)); FK = (data2(C) - Lowestv) / (Highestv - Lowestv) * 100; stok3 = wma(FK,26); stod3 = wma(Stok3,9); StoOsc = Stok3-Stod3; #60분봉 가중 스토케스틱 오실레이터 12,26,9 mav1 = data3(ma(c,5)); ## 120분봉의 5 단순이평 mav2 = data3(ma(c,10)); ## 120분봉의 10 단순이평 stok1 = data3(StochasticsK(15,9)); ## 120분봉의 %k 15,5 stod1 = data3(StochasticsD(15,9,9));## 120분봉의 %d 15,5,5 stok2 = data3(StochasticsK(7,7));## 120분봉의 %k 7,5 stod2 = data3(StochasticsD(7,5,5));## 120분봉의 %d 7,5,5 if crossup(LRSV,0) Then LRSVL = data2(L); if crossup(Smao,0) Then SmaoL = data2(L); if crossup(Wmao,0) Then WmaoL = data2(L); if crossup(StoOsc,0) Then StooscL = data2(L); if CrossDown(LRSV,0) Then LRSVH = data2(H); if CrossDown(Smao,0) Then SmaoH = data2(H); if CrossDown(Wmao,0) Then WmaoH = data2(H); if CrossDown(StoOsc,0) Then StooscH = data2(H); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count +1; } if crossup(ma1,ma2) Then Hval = H; if CrossDown(ma1,ma2) Then Lval = L; if MarketPosition == 0 and count == 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) Then Sell(); } if MarketPosition == 0 and count > 0 Then{ if IsExitName("StopLoss",1) == False and PositionProfit(1) <= 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) and ((LRSv < 0 and data2(L) > LRSVL) or (Smao < 0 and data2(L) > SmaoL) or (wmao < 0 and data2(L) > WmaoL) or (stoOsc < 0 and data2(L) > StooscL)) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) and ((LRSv > 0 and data2(H) < LRSVH) or (Smao > 0 and data2(H) < SmaoH) or (wmao > 0 and data2(H) < WmaoH) or (stoOsc > 0 and data2(H) < Stoosch)) Then Sell(); } } if MarketPosition == 1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and crossup(data4(ma(c,5)),data4(ma(c,10))) Then exitlong(); } if MarketPosition == -1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and CrossDown(data4(ma(c,5)),data4(ma(c,10))) Then ExitShort(); } SetStopLoss(1,PointStop); SetStopProfittarget(3,PointStop); SetStopEndofday(150000); 감사^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-03-15 09:55:33

안녕하세요 예스스탁입니다. 수식상 변수 선언시의 데이터 주기를 지정하는 것과 값의 할당에서 데이터 번호를 지정하는 부분을 수정해서 값이 제대로 저장되게 수정했습니다. 다만 매수시에 종가가 볼밴하단을 하향하는데 특정값은 상향돌파를 해야 하는 부분등 현재 각 진입조건식에 동시에 만족하기 힘든내용들이 있습니다. 조건식 부분은 저희쪽에서 수정해 드릴수 없는 부분이므로 나머지 조건식 내용은 직접 살펴보셔야 합니다. var : ma1(0,data1),ma2(0,data1),Hval(0),Lval(0),cnt(0,data2),count(0,data2); var : Bbup(0,data2),BBdn(0,data2),LRSv(0,data2),SMAO(0,data2),Wmao(0,data2); var : LowestV(0,data2),HighestV(0,data2),FK(0,data2),Stok3(0,data2),Stod3(0,data2),StoOsc(0,data2); var : LRSVL(0,data1),SmaoL(0,data1),WmaoL(0,data1),StoOscL(0,data1); var : LRSVH(0,data1),SmaoH(0,data1),WmaoH(0,data1),StoOscH(0,data1); var : mav1(0,data3),mav2(0,data3),stok1(0,data3),stod1(0,data3),stok2(0,data3),stod2(0,data3); ma1 = data1(ma(c,5)); # 1분봉의 5이동평균 ma2 = data1(ma(c,20)); # 1분봉의 20이동평균 BBup = data2(BollBandUp(20,1.5)); # 60분봉의 볼린져밴드상단 20,1.5 BBdn = data2(BollBandDown(20,1.5)); # 60분봉의 볼린져밴드하단 20,1.5 LRSv = data2(LRS(c,14)); # 60분봉의 LRS 14 Smao = data2(ma(C,5))-data2(ma(C,20)); # 60분봉의 단순 MAO 5,20 Wmao = data2(wma(C,8))-data2(wma(C,32)); # 60분봉의 가중 MAO 8,32 ## 60분봉의 가중 스토케스틱 오실레이터 계산 LowestV = data2(Lowest(L, 12)); HighestV = data2(Highest(H, 12)); FK = (data2(C) - Lowestv) / (Highestv - Lowestv) * 100; stok3 = data2(wma(FK,26)); stod3 = data2(wma(Stok3,9)); StoOsc = Stok3-Stod3; #60분봉 가중 스토케스틱 오실레이터 12,26,9 mav1 = data3(ma(c,5)); ## 120분봉의 5 단순이평 mav2 = data3(ma(c,10)); ## 120분봉의 10 단순이평 stok1 = data3(StochasticsK(15,9)); ## 120분봉의 %k 15,5 stod1 = data3(StochasticsD(15,9,9));## 120분봉의 %d 15,5,5 stok2 = data3(StochasticsK(7,7));## 120분봉의 %k 7,5 stod2 = data3(StochasticsD(7,5,5));## 120분봉의 %d 7,5,5 count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count +1; } if crossup(ma1,ma2) Then Hval = H; if CrossDown(ma1,ma2) Then Lval = L; if MarketPosition == 0 and count == 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) Then Sell(); } if MarketPosition == 0 and count > 0 Then{ if IsExitName("StopLoss",1) == False and PositionProfit(1) <= 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) and ((LRSv < 0 and data2(L) > LRSVL) or (Smao < 0 and data2(L) > SmaoL) or (wmao < 0 and data2(L) > WmaoL) or (stoOsc < 0 and data2(L) > StooscL)) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) and ((LRSv > 0 and data2(H) < LRSVH) or (Smao > 0 and data2(H) < SmaoH) or (wmao > 0 and data2(H) < WmaoH) or (stoOsc > 0 and data2(H) < Stoosch)) Then Sell(); } } if MarketPosition == 1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and crossup(data4(ma(c,5)),data4(ma(c,10))) Then exitlong(); } if MarketPosition == -1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and CrossDown(data4(ma(c,5)),data4(ma(c,10))) Then ExitShort(); } SetStopLoss(1,PointStop); SetStopProfittarget(3,PointStop); SetStopEndofday(150000); 즐거운 하루되세요 > yang오뚜기 님이 쓴 글입니다. > 제목 : 양준모 질문 12 > 안녕하세요 질문1 아래식은 하루 두번은 꼭 주문이 있을법한데 왜 10년이 두번만 신호발생하는지요 아래식 뭐가 문제인지? 하루 두번 신호 나오려면 뭘 수정해야 되는지요 ??? var : ma1(0),ma2(0),Hval(0),Lval(0),cnt(0,data2),count(0,data2); var : Bbup(0,data2),BBdn(0,data2),LRSv(0,data2),SMAO(0,data2),Wmao(0,data2); var : LowestV(0,data2),HighestV(0,data2),FK(0,data2),Stok3(0,data2),Stod3(0,data2),StoOsc(0,data2); var : LRSVL(0,data2),SmaoL(0,data2),WmaoL(0,data2),StoOscL(0,data2); var : LRSVH(0,data2),SmaoH(0,data2),WmaoH(0,data2),StoOscH(0,data2); var : mav1(0,data3),mav2(0,data3),stok1(0,data3),stod1(0,data3),stok2(0,data3),stod2(0,data3); ma1 = ma(c,5); # 1분봉의 5이동평균 ma2 = ma(c,20); # 1분봉의 20이동평균 BBup = data2(BollBandUp(20,1.5)); # 60분봉의 볼린져밴드상단 20,1.5 BBdn = data2(BollBandUp(20,1.5)); # 60분봉의 볼린져밴드하단 20,1.5 LRSv = data2(LRS(c,14)); # 60분봉의 LRS 14 Smao = data2(ma(C,5))-data2(ma(C,20)); # 60분봉의 단순 MAO 5,20 Wmao = data2(wma(C,8))-data2(wma(C,32)); # 60분봉의 가중 MAO 8,32 ## 60분봉의 가중 스토케스틱 오실레이터 계산 LowestV = data2(Lowest(L, 12)); HighestV = data2(Highest(H, 12)); FK = (data2(C) - Lowestv) / (Highestv - Lowestv) * 100; stok3 = wma(FK,26); stod3 = wma(Stok3,9); StoOsc = Stok3-Stod3; #60분봉 가중 스토케스틱 오실레이터 12,26,9 mav1 = data3(ma(c,5)); ## 120분봉의 5 단순이평 mav2 = data3(ma(c,10)); ## 120분봉의 10 단순이평 stok1 = data3(StochasticsK(15,9)); ## 120분봉의 %k 15,5 stod1 = data3(StochasticsD(15,9,9));## 120분봉의 %d 15,5,5 stok2 = data3(StochasticsK(7,7));## 120분봉의 %k 7,5 stod2 = data3(StochasticsD(7,5,5));## 120분봉의 %d 7,5,5 if crossup(LRSV,0) Then LRSVL = data2(L); if crossup(Smao,0) Then SmaoL = data2(L); if crossup(Wmao,0) Then WmaoL = data2(L); if crossup(StoOsc,0) Then StooscL = data2(L); if CrossDown(LRSV,0) Then LRSVH = data2(H); if CrossDown(Smao,0) Then SmaoH = data2(H); if CrossDown(Wmao,0) Then WmaoH = data2(H); if CrossDown(StoOsc,0) Then StooscH = data2(H); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count +1; } if crossup(ma1,ma2) Then Hval = H; if CrossDown(ma1,ma2) Then Lval = L; if MarketPosition == 0 and count == 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) Then Sell(); } if MarketPosition == 0 and count > 0 Then{ if IsExitName("StopLoss",1) == False and PositionProfit(1) <= 0 Then{ if (mav1 > mav2) and (stok1 < stod1 or stok2 < stod2) and CrossDown(data2(c),BBdn) and crossup(c,Hval) and ((LRSv < 0 and data2(L) > LRSVL) or (Smao < 0 and data2(L) > SmaoL) or (wmao < 0 and data2(L) > WmaoL) or (stoOsc < 0 and data2(L) > StooscL)) Then buy(); if (mav1 < mav2) and (stok1 > stod1 or stok2 > stod2) and CrossUp(data2(c),BBup) and CrossDown(c,Lval) and ((LRSv > 0 and data2(H) < LRSVH) or (Smao > 0 and data2(H) < SmaoH) or (wmao > 0 and data2(H) < WmaoH) or (stoOsc > 0 and data2(H) < Stoosch)) Then Sell(); } } if MarketPosition == 1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and crossup(data4(ma(c,5)),data4(ma(c,10))) Then exitlong(); } if MarketPosition == -1 Then{ if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+60 and CrossDown(data4(ma(c,5)),data4(ma(c,10))) Then ExitShort(); } SetStopLoss(1,PointStop); SetStopProfittarget(3,PointStop); SetStopEndofday(150000); 감사^^