답변완료
문의 드립니다!
안녕하세요!
첨부수식에서 아래와같은 조건이 만족시 다음과같은 지표가 발생토록 수정 부탁드립니다
<조 건>
1, plot1 이 data1과 data2를 만났을 경우와
2, plot2 가 data1과 data2를 만났을때 경우에 각각 아래의 지표가 발생토록 부탁드립니다
1, 우선 plot1과 plot2선의 시초 발생시점을 N봉후에 발생되도록 수정(예:장시작후 2번째 봉부터 가로선이 발생)
2, 위의 <조건>이 만족시 각각 세로선과 알람신호가 동시에 발생토록 수정
* 이 세로선과 알람신호도 N봉전(예;3봉전)에 발생 가능토록 하여주시고
* 세로선은 두께와 색상지정이 가능토록 부탁합니다
감사합니다!
------------------------------------------------------------------------------
var : TL1(0,data1),TL2(0,data1),TL3(0,data1),TL4(0,data1);
var : diff(0,data1),hh(0,data1),ll(0,data1);
diff = data1(c)-data2(c);
if bdate != bdate[1] Then
{
hh = diff;
ll = diff;
TL_Delete(TL1);
TL_Delete(TL2);
TL1 = TL_New(sdate,stime,H,NextBarSdate,NextBarStime,H);
TL2 = TL_New(sdate,stime,L,NextBarSdate,NextBarStime,L);
TL_Delete(TL3);
TL_Delete(TL4);
TL3 = TL_New(sdate,stime,H,Sdate,Stime,H);
TL4 = TL_New(sdate,stime,L,Sdate,Stime,L);
}
else
{
if diff > hh Then
{
hh = diff;
TL_SetBegin(TL3,sdate,stime,TL_GetValue(TL1,sdate,stime));
TL_Setend(TL3,NextBarSdate,NextBarStime,TL_GetValue(TL1,sdate,stime));
TL_SetBegin(TL1,sdate,stime,h);
TL_Setend(TL1,NextBarSdate,NextBarStime,h);
}
if diff < ll Then
{
ll = diff;
TL_SetBegin(TL4,sdate,stime,TL_GetValue(TL2,sdate,stime));
TL_Setend(TL4,NextBarSdate,NextBarStime,TL_GetValue(TL2,sdate,stime));
TL_SetBegin(TL2,sdate,stime,l);
TL_Setend(TL2,NextBarSdate,NextBarStime,l);
}
}
plot1(hh,"최고건수차",Magenta);
plot2(ll,"최저건수차",Magenta);
2023-04-08
1073
글번호 168017
지표
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
질문사항
시스템식에서 주문함수 exitlong(),exitshort()와
SetStopProfittarget()와 Setstoploss()를 같이 사용하고 싶습니다.
보통 주문청산을 사용할때는 exitlong(),exitshort()를 중간에 주문청산시 사용하고
코딩 맨 마지막에는 SetStopProfittarget()와 Setstoploss()를 사용합니다.
저는 SetStopProfittarget()와 Setstoploss()를 중간에도 사용하고
필요시 2번 이상도 사용하고 싶습니다.
그래서 아래와 같이 코딩해 보았는데 잘 되지 않는것 같습니다.
도움 부탁드립니다.
input : 틱사이즈(0.01) ;
var : 이평(0) ;
이평 = ma(C,20) ;
f marketposition == 0 and C > 이평 then
{
Buy("b1",OnClose,DEf,amt);
매수가격 = EntryPrice(0) ;
}
if MarketPosition == 1 Then
{
if MaxEntries(0) == 1 then
Buy("b2",AtLimit,매수가격-10*pricescal*MaxEntries,1);
if MaxEntries(0) == 2 Then
Buy("b3",AtLimit,매수가격-10*pricescal*MaxEntries,1);
if MaxEntries(0) == 3 Then
Buy("b4",AtLimit,매수가격-10*pricescal*MaxEntries,1);
if MaxEntries(0) == 4 Then
Buy("b5",AtLimit,매수가격-10*pricescal*MaxEntries,1);
if MaxEntries(0) == 5 Then
Buy("b6",AtLimit,매수가격-10*pricescal*MaxEntries,1);
# 청산 1
Exitlong("BP",AtLimit,AvgEntryPrice+10*PriceScale) ;
# 청산 2
if OpenPositionProfit/틱사이즈 > 10*PriceScale Then
ExitLong("bx",AtLimit,c+10*PriceScale);
# 청산 3-1
if MaxEntries() >= 3 Then
SetStopProfittarget(10*PriceScale,PointStop);
Else
SetStopProfittarget(0);
# 청산 3-2
if MaxEntries() < 3 Then
SetStopProfittarget(10*PriceScale,PointStop);
Else
SetStopProfittarget(0);
}
# 청산 4
SetStopProfittarget(50*PriceScale,PointStop);
위와 같이 청산 코딩을 4개로 할 경우 문제(청산이 안되거나)가 되는 부분이나
논리적으로 잘못된 부분이 있으시면 수정 부탁드립니다.
제가 하고자 하는 청산은 아래와 같습니다.
청산 1 : 가격이 하락하여 다계약 진입한 경우 진입 평균가보다 10틱 위에서 청산
청산 2 : 가격이 하락하여 다계약 진입한 경우 다계약의 현재 포지션 총수익 10틱 이상인 경우 현재가에서 10틱 위에서 청산
청산 3 : 총 3회 이상 진입한 경우 3번째 진입부터는 10틱 이상 수익시 개별 청산
3회 미만은 평균가보다 10틱 이상 또는현재 총수익이 10틱 이상인 경우 청산
또는
총 3회 미만 진입한 경우는 10틱 이상 수익시 개별 청산하고
3회 이상부터는 평균가 보다 10틱 이상 또는 총수익이 10틱 이상인 경우 청산
청산 4 : 1계약 진입후 가격이 지속 상승한 경우 50틱에서 청산(익절)
도움 부탁드립니다.
감사합니다.
2023-04-07
1454
글번호 168015
시스템