커뮤니티
수식점검 부탁드립니다.
2017-02-05 21:58:25
96
글번호 106536
#매수 매도가 이루어 지지않습니다. 확인좀 부탁드립니다.
# 운영시간 (09:00~06:00) 종료시간 모두 청산
# 10, 30, 60, 120선 정배열 and 5선 10일선 crosseup하면 매수
# 10, 30, 60, 120선 역배열 and 5선 10일선 crossdown하면 매도
# 20틱 하락시 시장가 청산
# 매수시 5일선이 20일선을 아래로 내려가면 청산
# 매도시 5일선이 20일선을 위로 올라가면 청산
input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);;
var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false);
var : BH(0), SL(0),T1(0);
mav5 = ma(c,P1);
mav10 = ma(c,P2);
mav20 = ma(c,P3);
mav30 = ma(c,P4);
mav60 = ma(c,P5);
mav120 = ma(c,P6);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then {
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
T = 0;
Tcond = true;
Xcond = false;
}
if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then
Xcond = true;
If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND
(mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then
T == 1 ;
If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND
(mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then
T == -1 ;
if Tcond == true and Xcond == false then {
if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then
buy("S매수");
if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then
sell("B매도");
}
if MarketPosition == 1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA);
if CrossDown(mav5,mav20) Then
exitlong("20일선매수청산");
}
if MarketPosition == -1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA);
if CrossUp(mav5,mav20) Then
exitlong("20일선매도청산");
}
답변 1
예스스탁 예스스탁 답변
2017-02-06 14:58:47
안녕하세요
예스스탁입니다.
If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND
(mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then
T == 1 ;
식을 수정했습니다.
변수에 값할당이 연산자 = 이어야 하는데 == 와 같이
같다라는 표현으로 되어 있었습니다.
input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);;
var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false);
var : BH(0), SL(0),T1(0);
mav5 = ma(c,P1);
mav10 = ma(c,P2);
mav20 = ma(c,P3);
mav30 = ma(c,P4);
mav60 = ma(c,P5);
mav120 = ma(c,P6);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then {
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
T = 0;
Tcond = true;
Xcond = false;
}
if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then
Xcond = true;
If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND
(mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then
T = 1 ;
If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND
(mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then
T = -1 ;
if Tcond == true and Xcond == false then {
if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then
buy("S매수");
if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then
sell("B매도");
}
if MarketPosition == 1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA);
if CrossDown(mav5,mav20) Then
exitlong("20일선매수청산");
}
if MarketPosition == -1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA);
if CrossUp(mav5,mav20) Then
exitlong("20일선매도청산");
}
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 수식점검 부탁드립니다.
> #매수 매도가 이루어 지지않습니다. 확인좀 부탁드립니다.
# 운영시간 (09:00~06:00) 종료시간 모두 청산
# 10, 30, 60, 120선 정배열 and 5선 10일선 crosseup하면 매수
# 10, 30, 60, 120선 역배열 and 5선 10일선 crossdown하면 매도
# 20틱 하락시 시장가 청산
# 매수시 5일선이 20일선을 아래로 내려가면 청산
# 매도시 5일선이 20일선을 위로 올라가면 청산
input : P1(5),P2(10),P3(20),P4(30),P5(60),P6(120),시작시간(90000),종료시간(60000), AA(20),BB(20);;
var : mav5(0),mav10(0),mav20(0),mav30(0),mav60(0),mav120(0),T(0),Tcond(false),Xcond(false);
var : BH(0), SL(0),T1(0);
mav5 = ma(c,P1);
mav10 = ma(c,P2);
mav20 = ma(c,P3);
mav30 = ma(c,P4);
mav60 = ma(c,P5);
mav120 = ma(c,P6);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then {
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
T = 0;
Tcond = true;
Xcond = false;
}
if TotalTrades > TotalTrades[1] and (IsExitName("매수청산",1) or IsExitName("매도청산",1)) Then
Xcond = true;
If (mav10[1] < mav30[1] OR mav30[1] < mav60[1] OR mav60[1] < mav120[1]) AND
(mav10 > mav30 AND mav30 > mav60 AND mav60 > mav120) Then
T == 1 ;
If (mav10[1] > mav30[1] OR mav30[1] > mav60[1] OR mav60[1] > mav120[1]) AND
(mav10 < mav30 AND mav30 < mav60 AND mav60 < mav120) Then
T == -1 ;
if Tcond == true and Xcond == false then {
if MarketPosition == 0 and T == 1 and CrossUp(Mav5,Mav10) Then
buy("S매수");
if MarketPosition == 0 and T == -1 and CrossDown(Mav5,Mav10) Then
sell("B매도");
}
if MarketPosition == 1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매수청산",AtStop,EntryPrice-PriceScale*AA);
if CrossDown(mav5,mav20) Then
exitlong("20일선매수청산");
}
if MarketPosition == -1 Then {
BH = highest(H,BarsSinceEntry);
ExitLong("손실매도청산",AtStop,EntryPrice-PriceScale*AA);
if CrossUp(mav5,mav20) Then
exitlong("20일선매도청산");
}
다음글
이전글