커뮤니티
양준모 질문 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);
감사^^
다음글
이전글