예스스탁
예스스탁 답변
2020-04-02 16:11:55
안녕하세요
예스스탁입니다.
1
수식안에서 모양까지 지정이 되지 않습니다.
검색식으로 작성해 드립니다. 조건만족봉의 고가와 저가에 점으로 표시됩니다.
모양은 설정차에서 변경하셔야 합니다.
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else if date >= 20050328 and date < 20150615 Then
DnLimit = (BP * 0.15);
Else
DnLimit = (BP * 0.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
dn1 = int(DnLimit/100)*100;
dn2 = int(DnLimit/100)*100;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/5)*5;
dn7 = int(DnLimit/1)*1;
}
else {
dn1 = int(DnLimit/1000)*1000;
dn2 = int(DnLimit/500)*500;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/10)*10;
dn7 = int(DnLimit/1)*1;
}
}
Else {
dn1 = int(DnLimit/1000)*1000;
dn2 = int(DnLimit/500)*500;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/5)*5;
dn7 = int(DnLimit/1)*1;
}
if CodeCategory() == 1 or CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
하한가 = BP-dn1;
Else If BP >= 100000 Then
하한가 = BP-dn2;
Else If BP >= 50000 Then
하한가 = BP-dn3;
Else If BP >= 10000 Then
하한가 = BP-dn4;
Else If BP >= 5000 Then
하한가 = BP-dn5;
Else If BP >= 1000 Then
하한가 = BP-dn6;
Else
하한가 = BP-dn6;
}
else{
If BP >= 500000 Then
하한가 = BP-dn1;
Else If BP >= 100000 Then
하한가 = BP-dn2;
Else If BP >= 50000 Then
하한가 = BP-dn3;
Else If BP >= 10000 Then
하한가 = BP-dn4;
Else If BP >= 5000 Then
하한가 = BP-dn5;
Else If BP >= 1000 Then
하한가 = BP-dn6;
Else
하한가 = BP-dn7;
}
}
else if CodeCategory() == 8 or CodeCategory() == 9 then {
하한가 = BP-dn6;
}
}
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
if H >= 상한가 Then
plot1(H,"상한가도닥",MAGENTA);
if L <= 하한가 Then
plot2(L,"상한가도닥",CYAN);
2
if c < ma(c,5) //공통의 조건
then
{
if crossup(c,dayopen) then // 1번 진입조건
buy("b1");
if a > b then // 2번 진입조건
buy("b2");
if (IsEntryName("b1") == true or IsEntryName("b2") == true) and q < d then //3번 청산 { 이 안에서 진입한식만 청산 }
ExitLong("q");
}
3
Condition1 = 1500 >= dayopen and dayopen >= 1000;
if Condition1 == false then
{
진입청산수식
}
4
var : hl(0);
#당일최고가 이후 최저가 계산
if h == DayHigh Then
hl = L;
if l < hl Then
hl = l;
if hl > dayhigh*0.90 then
{
진입수식
}
5
해당부분은 저희쪽에서 제공해 드릴만한 내용이 없습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 느와르 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요
아래 상하한가 지표식 답변 주셨는데
제가 질문을 잘못 드린듯 합니다.
일봉상에 상하한가였던 일봉 위 아래에 점(삼각형)으로 표시를 희망합니다.
주어진 답변과 조합해서 응용을 해보려 했지만
상하한가식이 매우 난해해진듯 싶어 그냥 30%를 단순희 적용해서 될 문제가 아닌듯 싶어
재차 문의 드립니다.
1,
일봉상에 상하한가였던 일봉 위아래(?) 점(삼각형)으로 표시를 희망합니다.
2. IF 문 작성 시스템식 개념 문의 드립니다.
if c < ma(c5) //공통의 조건
then
{
if crossup(c,dayopen) then // 1번 진입조건
buy
if a > b then // 2번 진입조건
buy
if q < d then //3번 청산 { 이 안에서 진입한식만 청산 }
ExitLong("q");
}
공통의 조건을 기반으로 3개의 시스템식을 공유 하는
if else문을 써야 하는건지 개념이 잡히질 않습니다.
위 의도를 구현하고 싶은데 랭기지 도움을 요청 드립니다
3.
주가가 1000~1500선(구간"a" 사이에 시가가 시작 되면 장중내내 진입하지 않고
1500 ~ 2000선(구간"b") 사이에 시가가 시작되면 진입한다.
랭기지 요청 드립니다.
4,
장시작후 당일 전고점대비 10%이상 하락하면 진입하지 않는다.
랭리지 요청 드립니다.
5.
주식 시스템식을 공부하는데 참고할만 예시 시스템식 제공이 가능하시다면
zozicnam@daum.net 으로 제공 요청 드립니다.
혹 커뮤니티에서 주식 시스템식을 검색하려면 추천 검색어가 있으면
도움을 주셨으면 합니다.
항상 빠른 답변 감사드리며
그럼 좋은 하루 되세요^^