답변완료
수식 부탁드립니다.
1. 지표 손절값을 기준으로.. 예를들어 50틱일 경우
- 매수 진입 후 직전 3개 봉(연속 음봉) 기준으로 첫번째 봉 시가와 세번째 봉
종가의 차이가 50틱일 경우 다음 봉 진입시 손절
- 매도 진입시에도 진입 후 직전 3개 봉(연속 양봉) 기준으로 첫번째 봉 시가와 세번째 봉
종가의 차이가 50틱일 경우 손절하는 수식 부탁드립니다.
2. 그리고 아래 지표 수식이 의미하는 내용이 무엇인지 설명 부탁드립니다.
input:b_time1(000000),e_time1(240000),
stoK_p11(100),stoK_p12(6),stoK_p13(6),
ma_p11(25),ma_p12(5),ma_p13(15),ma_p14(100),
ma_p15(10),ma_p16(20),ma_p17(15);
Var:stoK(0),stoD(0),TRIXv(0),TRIXsig(0),T(0);
If b_time1 <= Time and Time <= e_time1 Then
{
stoK = StochasticsK(stoK_p11,stoK_p12);
stoD = StochasticsD(stoK_p11,stoK_p12,stoK_p13);
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
T = 1;
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
T = -1;
}
plot1(iff(T==1,100,iff(T==-1,-100,0)));
plotbaseline1(0);
}
2021-12-10
902
글번호 154354
시스템
답변완료
재질문 드립니다. 텍스트가 반대로 움직입니다.ㅠ
input : 소숫점표시자리수(2),글자크기(12);
var : tl1(0),tl2(0),tl3(0),tl4(0);
var : tl5(0),tl6(0),tl7(0),tl8(0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
var : tx5(0),tx6(0),tx7(0),tx8(0);
plot1(dayopen(0),"당일시가");
plot2((DayHigh(1)+DayLow(1))/2,"전일중심");
plot3(DayHigh(1),"전일고가");
plot4(DayLow(1),"전일저가");
plot5(DayClose(1),"전일종가");
plot5((DayHigh(0)+DayLow(0))/2,"전일종가");
if Bdate != Bdate[1] Then
{
var1 = sDate;
Var2 = sTime;
tl1 = TL_New(sDate,sTime,DayOpen,NextBarSdate,NextBarStime,DayOpen);
tl2 = TL_New(sDate,sTime,DayHigh,NextBarSdate,NextBarStime,DayHigh);
tl3 = TL_New(sDate,sTime,DayLow,NextBarSdate,NextBarStime,DayLow);
tl4 = TL_New(sDate,sTime,(DayHigh+DayLow)/2,NextBarSdate,NextBarStime,(DayHigh+DayLow)/2);
tl5 = TL_New(sDate,sTime,DayClose(1),NextBarSdate,NextBarStime,DayClose(1));
tl6 = TL_New(sDate,sTime,DayHigh(1),NextBarSdate,NextBarStime,DayHigh(1));
tl7 = TL_New(sDate,sTime,DayLow(1),NextBarSdate,NextBarStime,DayLow(1));
tl8 = TL_New(sDate,sTime,(DayHigh(1)+DayLow(1))/2,NextBarSdate,NextBarStime,(DayHigh(1)+DayLow(1))/2);
}
Else
{
TL_setend(tl1,sDate,sTime,DayOpen);
if DayHigh(0) != DayHigh(0)[1] Then
{
TL_SetBegin(tl2,var1,Var2,DayHigh);
TL_SetBegin(tl4,var1,Var2,(DayHigh+DayLow)/2);
}
if DayLow(0) != DayLow(0)[1] Then
{
TL_SetBegin(tl3,var1,Var2,DayLow);
TL_SetBegin(tl4,var1,Var2,(DayHigh+DayLow)/2);
}
TL_setend(tl2,sDate,sTime,DayHigh);
TL_setend(tl3,sDate,sTime,DayLow);
TL_setend(tl4,sDate,sTime,(DayHigh+DayLow)/2);
TL_setend(tl5,sDate,sTime,DayClose(1));
TL_setend(tl6,sDate,sTime,DayHigh(1));
TL_setend(tl7,sDate,sTime,DayLow(1));
TL_setend(tl8,sDate,sTime,(DayHigh(1)+DayLow(1))/2);
}
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
Text_Delete(tx7);
Text_Delete(tx8);
tx1 = Text_New(NextBarSdate,NextBarStime,DayOpen," 당일시가"+NumToStr(DayOpen,소숫점표시자리수));
tx4 = Text_New(NextBarSdate,NextBarStime,(DayHigh+DayLow)/2," 당일중심"+NumToStr((DayHigh+DayLow)/2,소숫점표시자리수));
tx5 = Text_New(NextBarSdate,NextBarStime,DayClose(1)," 전일종가"+NumToStr(DayClose(1),소숫점표시자리수));
tx6 = Text_New(NextBarSdate,NextBarStime,DayHigh(1)," 전일고가"+NumToStr(DayHigh(1),소숫점표시자리수));
tx7 = Text_New(NextBarSdate,NextBarStime,DayLow(1)," 전일저가"+NumToStr(DayLow(1),소숫점표시자리수));
tx8 = Text_New(NextBarSdate,NextBarStime,(DayHigh(1)+DayLow(1))/2," 전일중심"+NumToStr((DayHigh(1)+DayLow(1))/2,소숫점표시자리수));
Text_SetSize(tx1,글자크기);
Text_SetSize(tx2,글자크기);
Text_SetSize(tx3,글자크기);
Text_SetSize(tx4,글자크기);
Text_SetSize(tx5,글자크기);
Text_SetSize(tx6,글자크기);
Text_SetSize(tx7,글자크기);
Text_SetSize(tx8,글자크기);
일전에 도와주셔서 사용중인 지표식입니다.
말씀하신거처럼 빈칸을 추가해보았으나 도리어 텍스트가 왼쪽으로 이동하여 봉을 더 가리게 되는군요. 제가 잘못바꾼건지 모르겠습니다. 도와주세요!!
/// 추가질문
종목차트 하단으로 위치하는 지표창위치를 종목차트 상단으로 바꾸는게 가능한지요?
가능하다면 알려주십시오.
2021-12-09
709
글번호 154352
지표
답변완료
청산 후 재진입3(Lcount 구별)
손절이후 당일 저점 1번째 돌파시 변수 적용 결과를 살펴보았습니다.(첨부파일)
387.24 저점을 돌파할 때 진입해야는데
다른 지점에서 진입합니다.
살펴주십시요.
input : n(1);
var : cnt(0),count(0);
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
input : 갭하락(1.5),손절진입(50),트레진입(50),최소진입(50);
input : loss(0.5),trail(1.5),최소가격(0.4),봉갯수(150);
if c < DayOpen - 갭하락 and count < n Then
Sell("s");
SetStopLoss(loss,PercentStop);
SetStopTrailing(trail,0,PercentStop,1);
SetStopInactivity(최소가격,봉갯수,PercentStop);
if MarketPosition == 0 Then
{
if TotalTrades > TotalTrades[1] Then
count = 0;
if daylow(0) < DayLow(0)[1] Then
count = count+1;
if IsExitName("StopLoss",1) == true and
ExitDate(1) == sDate and
count == 손절진입 Then
Sell("손절진입");
if IsExitName("StopTrailing",1) == true and
ExitDate(1) == sDate and
count == 트레진입 Then
Sell("트레진입");
if IsExitName("StopInactivity",1) == true and
ExitDate(1) == sDate and
count == 최소진입 Then
Sell("최소진입");
}
***********************************************************************************
안녕하세요
예스스탁입니다.
CountIf가 현재봉에서 청산봉까지 루프를 반복하게 되므로
다른 방법으로 작성하면 아래와 같습니다.
var : count(0);
SetStopLoss(loss,PercentStop);
SetStopTrailing(trail,0,PercentStop,1);
SetStopInactivity(최소가격,봉갯수,PercentStop);
if MarketPosition == 0 Then
{
if TotalTrades > TotalTrades[1] Then
count = 0;
if daylow(0) < DayLow(0)[1] Then
count = count+1;
if IsExitName("StopLoss",1) == true and
ExitDate(1) == sDate and
count == 3 Then
Sell();
if IsExitName("StopTrailing",1) == true and
ExitDate(1) == sDate and
count == 2 Then
Sell();
if IsExitName("StopInactivity",1) == true and
ExitDate(1) == sDate and
count == 1 Then
Sell();
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 답변 수식 고맙습니다.
그런데... 아래 수식을 사용하면 수식 추가 이전보다
시뮬레이션 속도가 현저히 느려지는데요.
이유가 있을까요?
피시 메모리는 동일한 조건에서 비교했습니다.
속도를 고려한 다른 수식은 없겠는지요?
***************************************************************************
SetStopLoss(loss,PercentStop);
SetStopTrailing(trail,0,PercentStop,1);
SetStopInactivity(최소가격,봉갯수,PercentStop);
if MarketPosition == 0 and
IsExitName("StopLoss",1) == true and
ExitDate(1) == sDate and
CountIf(daylow(0) < DayLow(0)[1],BarsSinceExit(1)) == 3 Then
Sell();
if MarketPosition == 0 and
IsExitName("StopTrailing",1) == true and
ExitDate(1) == sDate and
CountIf(daylow(0) < DayLow(0)[1],BarsSinceExit(1)) == 2 Then
Sell();
if MarketPosition == 0 and
IsExitName("StopInactivity",1) == true and
ExitDate(1) == sDate and
CountIf(daylow(0) < DayLow(0)[1],BarsSinceExit(1)) == 1 Then
Sell();
2021-12-16
737
글번호 154351
시스템