커뮤니티
문의드립니다.
2017-09-21 23:44:17
137
글번호 112990
아래식에서 진입회수(2)시 매도 진입 & 청산 후 다시 매도 진입 조건이면 재진입됩니다.(그림참조)
진입회수(2)일때 crossup(mav2,mav3)조건에서 한번, Crossdown(mav2,mav3) 조건에서 한번, 총 2번 진입이 될수 있게 수정 부탁드립니다.
input : short(12),long(26),sig(9),P1(3),P2(50), P3(160);
input : 시작시간(215000), 종료시간(05000);
input : 진입회수(2);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1);
var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1);
var : MACDO2(0,data2);
var : BH(0),SL(0);
MACDO2 = data2(MACD_OSC(short,long,sig));
mav1 = data1(ma(c,P1));
mav2 = data1(ma(c,P2));
mav3 = data1(ma(c,P3));
if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Bcount = 0;
Scount = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
}
//진입회수
if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then
Bcount = Bcount+1;
if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then
Scount = Scount+1;
//진입
if Tcond == true Then{
if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy");
if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell");
}
if 종료시간 <= sTime and sTime < 시작시간 then {
if MarketPosition == 1 then{
ExitLong("B장종료");
}
if MarketPosition == -1 then{
ExitShort("S장종료");
}
}
- 1. 20170921_234247.jpg (0.03 MB)
답변 1
예스스탁 예스스탁 답변
2017-09-22 13:32:38
안녕하세요
예스스탁입니다.
작성하신 수식에서는 매수나 매도 각각 지정한 진입횟수만큼 가능하게 되어 있습니다.
그러므로 진입회수를 1로 하시면 매수1번, 매도1번 진입하게 됩니다.
즐거운 하루되세요
> 라떼처럼 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래식에서 진입회수(2)시 매도 진입 & 청산 후 다시 매도 진입 조건이면 재진입됩니다.(그림참조)
진입회수(2)일때 crossup(mav2,mav3)조건에서 한번, Crossdown(mav2,mav3) 조건에서 한번, 총 2번 진입이 될수 있게 수정 부탁드립니다.
input : short(12),long(26),sig(9),P1(3),P2(50), P3(160);
input : 시작시간(215000), 종료시간(05000);
input : 진입회수(2);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1);
var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1);
var : MACDO2(0,data2);
var : BH(0),SL(0);
MACDO2 = data2(MACD_OSC(short,long,sig));
mav1 = data1(ma(c,P1));
mav2 = data1(ma(c,P2));
mav3 = data1(ma(c,P3));
if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Bcount = 0;
Scount = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
}
//진입회수
if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then
Bcount = Bcount+1;
if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then
Scount = Scount+1;
//진입
if Tcond == true Then{
if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy");
if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell");
}
if 종료시간 <= sTime and sTime < 시작시간 then {
if MarketPosition == 1 then{
ExitLong("B장종료");
}
if MarketPosition == -1 then{
ExitShort("S장종료");
}
}