커뮤니티
수식 수정 부탁드립니다.
2017-06-08 23:12:58
145
글번호 110266
수고많으십니다.
아래수식을 실행시키면
당일거래횟수 변수가 2번으로 되어 있어 2번 진입되면 청산시간까지 가서 청산이 되고있는데
2번진입후 반대 신호 나오면 보유분 청산하고 그날 매매 종료하고 싶습니다.
감사합니다.
--------------------------------------------------------
INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2);
VAR : TCHAN(0), BCHAN(0);
var : bs1(0),ss1(0);
var : bs2(0),ss2(0);
var : bs3(0),ss3(0);
var : bl(0),bh(0), sh(0), sl(0);
var : NP(0),Pre(0),DayPL(0),Xcond(false);
var : TT(0),T1(0),Entry(0);
if stime >= 092000 or stime < 144900 Then{
NP = NetProfit;
TT = TotalTrades;
if Bdate != Bdate[1] Then{
Pre = NP[1];
Xcond = false;
T1 = TT[1];
}
DayPL = NP-Pre;
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then
Xcond = true;
TCHAN = HIGHEST(HIGH, LENGTH)[2];
BCHAN = LOWEST(LOW, LENGTH)[2];
// TCHAN 보다 크면 매수 1단계
if TCHAN[1] < H[1] then {bs1 = 1;}
if BCHAN[1] > L[1] then {ss1 = 1;}
// 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화
if bs1 == 1 and BCHAN > L then {bs1=0; }
if ss1 == 1 and TCHAN < H then {ss1=0; }
//진입
if bs1 == 1 and Xcond == false and entry < 당일거래횟수 then {buy("매수",atlimit,TCHAN-PriceScale*TICK); }
if ss1 == 1 and Xcond == false and entry < 당일거래횟수 then {sell("매도",atlimit,BCHAN+PriceScale*TICK); }
if MarketPosition == 1 Then
ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL);
if MarketPosition == -1 Then
ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl );
SetStopProfittarget(PRO,PointStop);
SetStopLoss(LOSS,PointStop);
#SetStopEndofday(T);
}
답변 1
예스스탁 예스스탁 답변
2017-06-09 10:32:33
안녕하세요
예스스탁입니다.
INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2);
VAR : TCHAN(0), BCHAN(0);
var : bs1(0),ss1(0);
var : bs2(0),ss2(0);
var : bs3(0),ss3(0);
var : bl(0),bh(0), sh(0), sl(0);
var : NP(0),Pre(0),DayPL(0),Xcond(false);
var : TT(0),T1(0),Entry(0);
if stime >= 092000 or stime < 144900 Then{
NP = NetProfit;
TT = TotalTrades;
if Bdate != Bdate[1] Then{
Pre = NP[1];
Xcond = false;
T1 = TT[1];
}
DayPL = NP-Pre;
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then
Xcond = true;
TCHAN = HIGHEST(HIGH, LENGTH)[2];
BCHAN = LOWEST(LOW, LENGTH)[2];
// TCHAN 보다 크면 매수 1단계
if TCHAN[1] < H[1] then {bs1 = 1;}
if BCHAN[1] > L[1] then {ss1 = 1;}
// 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화
if bs1 == 1 and BCHAN > L then {bs1=0; }
if ss1 == 1 and TCHAN < H then {ss1=0; }
//진입
if bs1 == 1 and Xcond == false then
{
if entry < 당일거래횟수 Then
buy("매수",atlimit,TCHAN-PriceScale*TICK);
Else
ExitShort("sx",atlimit,TCHAN-PriceScale*TICK);
}
if ss1 == 1 and Xcond == false Then
{
if entry < 당일거래횟수 then
sell("매도",atlimit,BCHAN+PriceScale*TICK);
Else
ExitLong("bx",atlimit,BCHAN+PriceScale*TICK);
}
if MarketPosition == 1 Then
ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL);
if MarketPosition == -1 Then
ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl );
SetStopProfittarget(PRO,PointStop);
SetStopLoss(LOSS,PointStop);
}
#SetStopEndofday(T);
즐거운 하루되세요
> 비류천 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다.
> 수고많으십니다.
아래수식을 실행시키면
당일거래횟수 변수가 2번으로 되어 있어 2번 진입되면 청산시간까지 가서 청산이 되고있는데
2번진입후 반대 신호 나오면 보유분 청산하고 그날 매매 종료하고 싶습니다.
감사합니다.
--------------------------------------------------------
INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2);
VAR : TCHAN(0), BCHAN(0);
var : bs1(0),ss1(0);
var : bs2(0),ss2(0);
var : bs3(0),ss3(0);
var : bl(0),bh(0), sh(0), sl(0);
var : NP(0),Pre(0),DayPL(0),Xcond(false);
var : TT(0),T1(0),Entry(0);
if stime >= 092000 or stime < 144900 Then{
NP = NetProfit;
TT = TotalTrades;
if Bdate != Bdate[1] Then{
Pre = NP[1];
Xcond = false;
T1 = TT[1];
}
DayPL = NP-Pre;
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then
Xcond = true;
TCHAN = HIGHEST(HIGH, LENGTH)[2];
BCHAN = LOWEST(LOW, LENGTH)[2];
// TCHAN 보다 크면 매수 1단계
if TCHAN[1] < H[1] then {bs1 = 1;}
if BCHAN[1] > L[1] then {ss1 = 1;}
// 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화
if bs1 == 1 and BCHAN > L then {bs1=0; }
if ss1 == 1 and TCHAN < H then {ss1=0; }
//진입
if bs1 == 1 and Xcond == false and entry < 당일거래횟수 then {buy("매수",atlimit,TCHAN-PriceScale*TICK); }
if ss1 == 1 and Xcond == false and entry < 당일거래횟수 then {sell("매도",atlimit,BCHAN+PriceScale*TICK); }
if MarketPosition == 1 Then
ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL);
if MarketPosition == -1 Then
ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl );
SetStopProfittarget(PRO,PointStop);
SetStopLoss(LOSS,PointStop);
#SetStopEndofday(T);
}
다음글
이전글