답변완료
지난 번 답변에 감사드립니다. 시스템 (한번 더) 여쭤봅니다.
지난 3.29일 문의에 성실히 답해 주신 점 지금도 너무 고밥게 생각합니다.
그날 이후 당장 자동매매시스템으로 만들어서 자동매매를 하고 있어 감사드립니다.
자동매매하면서 생긴 의문점을 추가로 해결하고자 아래 두가지에 대해 한번 더 여쭙고자 합니다.
1. 추세매매 속성 상 되돌려주는 부분이 많아 '시스템 트레이딩 설정'창의 '강제청산' 항목의
목표수익 익절 포인트(잠정 20p정도)에 체크하고 매매해보니 한번 익절 포인트에 도달하면 그날의 매매가 끝나는 것을 알게 됐습니다. 제가 원하는 것은 당해 신호로 익절을 했더라도 다시 새로운 신호 출현 시 연속매매를 하고 싶은데 이것도 시스템에 반영이 가능할까요?
2. 아래 시스템에 의하면 시작시간(ntime)은 외부변수로 나와 있어서 시작시간을 변경하기가 수월한데, 끝나는 시간(여기 설정은 05시30분)과 진입제한시간(제 생각으론 04시30분 정도, 진입제한시간 이후 신호엔 신규진입을 하지 않고 청산만)도 외부변수로 뺄 수가 있을까요?
답변에 미리 감사드립니다.
아래는 3.29일 당시 만들어 주신 시스템
input : ntime(90000);
var : entry(0),T(0),S(0);
if sdate !=sDate[1] Then
SetStopEndofday(053000);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
entry = 0;
S = 0;
T = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if T == 0 Then
{
if H >= DayLow+10 Then
S = 1;
if L <= DayHigh-10 Then
S = -1;
}
if (sDate != sDate[1] and sTime >= ntime) or
(sDate == sDate[1] and sTime >= ntime and sTime[1] < ntime) Then
T = 1;
if T == 1 and entry == 0 and MarketPosition == 0 Then
{
if S == 1 Then
Buy("b1");
if S == -1 Then
Sell("S1");
if S == 0 Then
{
if H < DayLow+10 Then
Buy("b2",AtStop,DayLow+10);
if L > DayHigh-10 Then
Sell("s2",AtStop,DayHigh-10);
}
}
if MarketPosition == 1 Then
{
if Highest(h,BarsSinceEntry) >= EntryPrice+10 Then
Sell("bs1",AtStop,Highest(H,BarsSinceEntry)-15);
Else
Sell("bs2",AtStop,Highest(H,BarsSinceEntry)-10);
}
if MarketPosition == -1 Then
{
if Lowest(l,BarsSinceEntry) <= EntryPrice-10 Then
Buy("sb1",AtStop,Lowest(L,BarsSinceEntry)+15);
Else
Buy("sb2",AtStop,Lowest(L,BarsSinceEntry)+10);
}
2021-04-04
990
글번호 147646
시스템
답변완료
부탁드립니다
$,아래식에서 plot선 2개를 추가로 출력요청 드립니다.
1,
plot1 (미장시작 첫봉의시가를 미장종료시까지 오른쪽그리기)
plot2 (미장시작봉부터 종가선을 시작점까지 왼쪽그리기하되 봉이갱신되면 이전봉
종가선은 삭제(결국 미장종료후 마지막봉 종가선 하나만 미장시작점까지
왼쪽그리기 유지됨)
*색채우기를 하고자 plot로 요청하니 도움 부탁드립니다.
input : USA시작(223000),USA종료(050000),USA굵기(0);
var : D1(0),T1(0),H1(0),L1(0),Tcond1(false);
var : D2(0),T2(0),H2(0),L2(0),Tcond2(false);
var : D3(0),T3(0),H3(0),L3(0),Tcond3(false);
var : ED1(0),ET1(0),ED2(0),ET2(0),ED3(0),ET3(0);
var : TL11(0),TL12(0),TL13(0),TL14(0);
var : TL111(0),TL121(0),TL131(0),TL141(0);
var : TL21(0),TL22(0),TL23(0),TL24(0);
var : TL211(0),TL221(0),TL231(0),TL241(0);
var : TL31(0),TL32(0),TL33(0),TL34(0);
var : TL311(0),TL321(0),TL331(0),TL341(0);
var : tx1(0),tx2(0),tx3(0);
var : tx11(0),tx21(0),tx31(0);
if time == USA종료 or (time > USA종료 and time[1] < USA종료) Then
Tcond3 = false;
if stime == USA시작 or (stime > USA시작 and stime[1] < USA시작) Then{
D3 = sdate;
T3 = stime;
H3 = H;
L3 = L;
Tcond3 = true;
if d3[1] > 0 and ED3 > 0 Then{
TL_Delete(TL311);
TL_Delete(TL321);
TL_Delete(TL331);
TL_Delete(TL341);
TL311 = TL_New(D3[1],T3[1],H3[1],ED3,ET3,H3[1]);
TL321 = TL_New(D3[1],T3[1],L3[1],ED3,ET3,L3[1]);
TL331 = TL_New(D3[1],T3[1],H3[1],D3[1],T3[1],L3[1]);
TL341 = TL_New(ED3,ET3,H3[1],ED3,ET3,L3[1]);
TL_SetColor(TL311,MAGENTA);
TL_SetColor(TL321,MAGENTA);
TL_SetColor(TL331,MAGENTA);
TL_SetColor(TL341,MAGENTA);
TL_SetSize(TL311,USA굵기);
TL_SetSize(TL321,USA굵기);
TL_SetSize(TL331,USA굵기);
TL_SetSize(TL341,USA굵기);
Text_Delete(tx31);
tx31 = Text_New(ED3,ET3,H3[1],NumToStr(H3[1]-L3[1],4));
Text_SetColor(tx31,MAGENTA);
}
}
if Tcond3 == true Then{
if H > H3 Then
H3 = H;
if L < L3 Then
L3 = L;
ED3 = sdate;
ET3 = stime;
TL_Delete(TL31);
TL_Delete(TL32);
TL_Delete(TL33);
TL_Delete(TL34);
TL31 = TL_New(D3,T3,H3,Sdate,stime,H3);
TL32 = TL_New(D3,T3,L3,Sdate,stime,L3);
TL33 = TL_New(D3,T3,H3,D3,T3,L3);
TL34 = TL_New(sdate,stime,H3,sdate,stime,L3);
TL_SetColor(TL31,MAGENTA);
TL_SetColor(TL32,MAGENTA);
TL_SetColor(TL33,MAGENTA);
TL_SetColor(TL34,MAGENTA);
TL_SetSize(TL311,USA굵기);
TL_SetSize(TL321,USA굵기);
TL_SetSize(TL331,USA굵기);
TL_SetSize(TL341,USA굵기);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,H3,NumToStr(H3-L3,4));
Text_SetColor(tx3,MAGENTA);
}
2, IFf (OO[0] > OO[1] ,MAGENTA,BLUE) 이 함수 로직을 OO[0]> OO[1] > CC[1]일때로
할때 함수로직 부탁드립니다.
$,고맙습니다.
2021-04-05
971
글번호 147638
지표