커뮤니티
문의드립니다.
2018-06-26 17:08:19
221
글번호 120045
문의 1번.
안녕하세요.
다음과 같은 형태의 검색식을 작성해봤는데 원하는 대로 검색이 안되네요.
수식 확인 부탁드립니다.
감사합니다.
* 60봉 동안 최고-최저가 20% 이내
* 종가 위치가 박스권의 하단 25% 이내
* 60봉 중 상단(20%) 부분에서 종가가 5회 이상 위치
* 60봉 중 하단(20%) 부분에서 종가가 5회 이상 위치
Variables : count1(0),count2(0), HH(0), LL(0), H_count(0), L_count(0);
input: 날짜(20100101);
HH = Highest(C[1],60);
LL = Lowest(C[1],60);
H_count = AccumN(iff(C > (HH -LL)*3/4 + LL, 1,0),60) ;
L_count = AccumN(iff(C < (HH -LL)*4 + LL, 1,0),60) ;
If HH <= LL * 1.2
and C < LL + (HH-LL) / 4
and H_count >=5 and L_count >=5
Then
value1 = C;
Else
value1 = 0;
Find(Value1);
--------------------------------------------------------------------------------------
문의 2번.
2차 매수 관련 문의
* 1차 매수 시 매수가와 직전 30봉의 최저가 체크
* 2차 매수는 1차 매수가(종가)와 직전 30봉 최저가(종가)의 차이에 따라서 변경됨
** 최저가가 매수가 대비 -15% 이내일 경우 2차 매수 금지
** 최저가가 매수가 대비 -15~ -20% 이내일 경우 crossdown(C, 1차매수가 * 0.85)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -20 ~ -30% 이내일 경우 crossdown(C, 1차매수가 * 0.80)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -30% 이상 벌어진 경우 2차 매수 금지
파란 원 부분에서 2차 매수가 나와야할 것 같은데 안나왔습니다.
수식 검토 부탁드립니다. 감사합니다.
low30 = lowest(C,30);
ma_min = min(ma(c,5), ma(c,10),ma(c,20), ma(c,60), ma(c,120));
MessageLog("%.2f %.2f %.2f %.2f %.2f", edate, low30, LatestEntryPrice, low30_no, low30_no);
if 조건 만족 then {
buy("b");
edate = entrydate;
}
////추가 매수
If CurrentEntries == 1 and edate == EntryDate then {
If low30 > LatestEntryPrice * 0.85 Then { low30_no = 1; }
else If low30 <= LatestEntryPrice * 0.85 and low30 > LatestEntryPrice * 0.8 Then {
low30_no = 2;
}
else If low30 > LatestEntryPrice * 0.7 Then {
low30_no = 3;
}
Else { low30_no = 4;
}
}
If CurrentEntries == 0 then edate = 0;
if sdate >= 날짜 and currententries == 1 Then {
If low30_no == 1 Then { }
else If low30_no ==2 Then {
if L<= latestentryprice * 0.85 then {buy("b2(-15%)",AtMarket,def);}
}
else If low30 == 3 Then {
If L <= avgentryprice * 0.8 Then { buy("b2(-20%)",AtMarket,def);}
}
Else {}// 30% 이하찍으면 2차 매수 안함
}
답변 1
예스스탁 예스스탁 답변
2018-06-26 20:22:56
안녕하세요
예스스탁입니다.
1
Var : count1(0),count2(0), HH(0), LL(0), H_count(0), L_count(0);
var : cnt(0);
HH = Highest(C[1],60);
LL = Lowest(C[1],60);
H_count = 0 ;
L_count = 0;
for cnt = 1 to 60
{
if C[cnt] >= HH-(HH-LL)*20 then
H_count = H_count+1;
if C[cnt] <= LL+(HH-LL)*20 then
L_count = L_count+1;
}
If HH <= LL * 1.2
and C < LL + (HH-LL) / 4
and H_count >=5 and L_count >=5
Then
value1 = C;
Else
value1 = 0;
Find(Value1);
2
진입하지 않는 내용에 대해서는 조건지정이 불필요 합니다.
추가진입을 하는 식이므로 식 적용시에 시스템 트레이딩 설정창의
피라미딩 탭에서 다른신호만 허용으로 설정하고 적용하시면 됩니다.
#매수진입후이고 최대 진입이 1회일때
if MarketPosition == 1 and MaxEntries == 1 then
{
#진입가 대비 30봉 최저가 등락률
var1 = (Low30-LatestEntryPrice(0))/LatestEntryPrice(0)*100;
#-15~-20 사이이고 진입가-15%를 하향이탈하거나
#-20~-30 사이이고 진입가-20%를 하향이탈하면 매수
if (var1 <= -15 and var1 > -20 and CrossDown(c,LatestEntryPrice(0)*0.85)) or
(var1 <= -20 and var1 > -30 and CrossDown(c,LatestEntryPrice(0)*0.80))Then
buy("b2");
}
즐거운 하루되세요
> 깜피 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 문의 1번.
안녕하세요.
다음과 같은 형태의 검색식을 작성해봤는데 원하는 대로 검색이 안되네요.
수식 확인 부탁드립니다.
감사합니다.
* 60봉 동안 최고-최저가 20% 이내
* 종가 위치가 박스권의 하단 25% 이내
* 60봉 중 상단(20%) 부분에서 종가가 5회 이상 위치
* 60봉 중 하단(20%) 부분에서 종가가 5회 이상 위치
Variables : count1(0),count2(0), HH(0), LL(0), H_count(0), L_count(0);
input: 날짜(20100101);
HH = Highest(C[1],60);
LL = Lowest(C[1],60);
H_count = AccumN(iff(C > (HH -LL)*3/4 + LL, 1,0),60) ;
L_count = AccumN(iff(C < (HH -LL)*4 + LL, 1,0),60) ;
If HH <= LL * 1.2
and C < LL + (HH-LL) / 4
and H_count >=5 and L_count >=5
Then
value1 = C;
Else
value1 = 0;
Find(Value1);
--------------------------------------------------------------------------------------
문의 2번.
2차 매수 관련 문의
* 1차 매수 시 매수가와 직전 30봉의 최저가 체크
* 2차 매수는 1차 매수가(종가)와 직전 30봉 최저가(종가)의 차이에 따라서 변경됨
** 최저가가 매수가 대비 -15% 이내일 경우 2차 매수 금지
** 최저가가 매수가 대비 -15~ -20% 이내일 경우 crossdown(C, 1차매수가 * 0.85)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -20 ~ -30% 이내일 경우 crossdown(C, 1차매수가 * 0.80)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -30% 이상 벌어진 경우 2차 매수 금지
파란 원 부분에서 2차 매수가 나와야할 것 같은데 안나왔습니다.
수식 검토 부탁드립니다. 감사합니다.
low30 = lowest(C,30);
ma_min = min(ma(c,5), ma(c,10),ma(c,20), ma(c,60), ma(c,120));
MessageLog("%.2f %.2f %.2f %.2f %.2f", edate, low30, LatestEntryPrice, low30_no, low30_no);
if 조건 만족 then {
buy("b");
edate = entrydate;
}
////추가 매수
If CurrentEntries == 1 and edate == EntryDate then {
If low30 > LatestEntryPrice * 0.85 Then { low30_no = 1; }
else If low30 <= LatestEntryPrice * 0.85 and low30 > LatestEntryPrice * 0.8 Then {
low30_no = 2;
}
else If low30 > LatestEntryPrice * 0.7 Then {
low30_no = 3;
}
Else { low30_no = 4;
}
}
If CurrentEntries == 0 then edate = 0;
if sdate >= 날짜 and currententries == 1 Then {
If low30_no == 1 Then { }
else If low30_no ==2 Then {
if L<= latestentryprice * 0.85 then {buy("b2(-15%)",AtMarket,def);}
}
else If low30 == 3 Then {
If L <= avgentryprice * 0.8 Then { buy("b2(-20%)",AtMarket,def);}
}
Else {}// 30% 이하찍으면 2차 매수 안함
}