커뮤니티
매수청산 부분만 수정 부탁드립니다.
2008-12-26 10:39:27
843
글번호 19019
현재 매수청산 부분 다 삭제하셔도 되구요
평균단가를 표현할수 있나요? 있다면
--------------------------------------
현재가 >=매수해서 보유한 주식의 평균단가 * 1%
이럴때 매수청산 그리고 이후엔 매수진입 안나오게끔
수정 부탁드립니다~
======================================================================
input : 날짜(20080114),P1(4),P2(5),P3(10),P4(11),P5(13),p6(16),p7(20);
input : L1(14),L2(15), L4(17),L5(18),L6(19),L7(21),L8(22),L9(23);
var : cnt(0),mav4(0),mav5(0),mav10(0),mav11(0),mav13(0),mav16(0),mav20(0);
var : cond1(False),cond2(false),Bcnt1(0),Bcnt2(0),Bcnt3(0);
var : buycond1(False),buycond2(False),buycond3(false);
var : sellcond1(False),sellcond2(False),sellcond3(false);
var : mav14(0), mav15(0),mav17(0),mav18(0),mav19(0),mav21(0),mav22(0),mav23(0);
var : B11(0),B12(0),B13(0),B21(0),B22(0),B23(0),B31(0),B32(0),B33(0);
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var11 = 0;
var12 = 0;
var13 = 0;
var14 = 0;
var15 = 0;
var16 = 0;
var17 = 0;
var18 = 0;
var19 = 0;
for cnt = 0 to L9-1{
if cnt < P1 Then
var1 = var1 + dayclose(cnt);
if cnt < P2 Then
var2 = var2 + dayclose(cnt);
if cnt < P3 Then
var3 = var3 + dayclose(cnt);
if cnt < P4 then
var4 = var4 + dayclose(cnt);
if cnt < P5 then
var5 = var5 + dayclose(cnt);
if cnt < P6 then
var6 = var6 + dayclose(cnt);
if cnt < P7 then
var7 = var7 + dayclose(cnt);
if cnt < L1 Then
var11 = var11 + dayclose(cnt);
if cnt < L2 Then
var12 = var12 + dayclose(cnt);
if cnt < L4 then
var14 = var14 + dayclose(cnt);
if cnt < L5 then
var15 = var15 + dayclose(cnt);
if cnt < L6 then
var16 = var16 + dayclose(cnt);
if cnt < L7 then
var17 = var17 + dayclose(cnt);
if cnt < L8 then
var18 = var18 + dayclose(cnt);
if cnt < L9 then
var19 = var19 + dayclose(cnt);
}
mav4 = var1/P1;
mav5 = var2/p2;
mav10 = var3/P3;
mav11 = var4/P4;
mav13 = var5/P5;
mav16 = var6/P6;
mav20 = var7/P7;
mav14 = var11/L1;
mav15 = var12/L2;
mav17 = var14/L4;
mav18 = var15/L5;
mav19 = var16/L6;
mav21 = var17/L7;
mav22 = var18/L8;
mav23 = var19/L9;
cond1 = dayopen() >= mav11*0.99;
cond2 = dayopen() < mav11*0.99;
buyCond1 =dayclose(1) >= 1025 and
C > dayclose(1)*0.89 and
c <= mav13*1.005;
buyCond2 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav16*1.005;
buyCond3 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav20*1.005;
sellcond1 = C >= mav4*0.99;
sellcond2 = C >= mav5*0.99;
sellcond3 = mav4 >= mav10*0.99 and mav4 <= mav10*1.01 and
C >= mav10*0.988;
if cond1 == true Then{
if buyCond1 == true and Sdate >= 날짜 and Bcnt1 < 1 Then{
buy("13ma");
Bcnt1 = 1;
}
}
if cond1 == true or cond2 == true then{
if buyCond2 == true and Sdate >= 날짜 and Bcnt2 < 1 Then{
buy("16ma");
Bcnt2 = 1;
}
if buyCond3 == true and Sdate >= 날짜 and Bcnt3 < 1 Then{
buy("20ma");
Bcnt3 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt1 == 1 and C <= mav14*1.005 and B11 < 1 Then{
buy("14ma");
B11 = 1;
}
if Bcnt1 == 1 and C <= mav15*1.005 and B12 < 1 Then{
buy("15ma");
B12 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt2 == 1 and C <= mav17*1.005 and B21 < 1 Then{
buy("17ma");
B21 = 1;
}
if Bcnt2 == 1 and C <= mav18*1.005 and B22 < 1 Then{
buy("18ma");
B22 = 1;
}
if Bcnt2 == 1 and C <= mav19*1.005 and B23 < 1 Then{
buy("19ma");
B23 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt3 == 1 and C <= mav21*1.005 and B31 < 1 Then{
buy("21ma");
B31 = 1;
}
if Bcnt3 == 1 and C <= mav22*1.005 and B32 < 1 Then{
buy("22ma");
B32 = 1;
}
if Bcnt3 == 1 and C <= mav23*1.005 and B33 < 1 Then{
buy("23ma");
B33 = 1;
}
}
if MarketPosition() == 1 and sellcond1 == true Then {
exitlong("4maEX1");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond2 == true Then {
exitlong("5maEX2");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond3 == true Then {
exitlong("10maEX3");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
답변 1
예스스탁 예스스탁 답변
2008-12-26 12:46:29
안녕하세요
예스스탁입니다.
진입을 당일 첫진입과 두번째이후 진입으로 분리하여
두번째진입부터는 전청산이 XXX가 아닐경우만 진입하게 하는 방식입니다.
input : 날짜(20080114),P1(4),P2(5),P3(10),P4(11),P5(13),p6(16),p7(20);
input : L1(14),L2(15), L4(17),L5(18),L6(19),L7(21),L8(22),L9(23);
var : cnt(0),mav4(0),mav5(0),mav10(0),mav11(0),mav13(0),mav16(0),mav20(0);
var : cond1(False),cond2(false),Bcnt1(0),Bcnt2(0),Bcnt3(0);
var : buycond1(False),buycond2(False),buycond3(false);
var : sellcond1(False),sellcond2(False),sellcond3(false);
var : mav14(0), mav15(0),mav17(0),mav18(0),mav19(0),mav21(0),mav22(0),mav23(0);
var : B11(0),B12(0),B13(0),B21(0),B22(0),B23(0),B31(0),B32(0),B33(0);
var : entrycnt(0),entrycount(0);
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var11 = 0;
var12 = 0;
var13 = 0;
var14 = 0;
var15 = 0;
var16 = 0;
var17 = 0;
var18 = 0;
var19 = 0;
for cnt = 0 to L9-1{
if cnt < P1 Then
var1 = var1 + dayclose(cnt);
if cnt < P2 Then
var2 = var2 + dayclose(cnt);
if cnt < P3 Then
var3 = var3 + dayclose(cnt);
if cnt < P4 then
var4 = var4 + dayclose(cnt);
if cnt < P5 then
var5 = var5 + dayclose(cnt);
if cnt < P6 then
var6 = var6 + dayclose(cnt);
if cnt < P7 then
var7 = var7 + dayclose(cnt);
if cnt < L1 Then
var11 = var11 + dayclose(cnt);
if cnt < L2 Then
var12 = var12 + dayclose(cnt);
if cnt < L4 then
var14 = var14 + dayclose(cnt);
if cnt < L5 then
var15 = var15 + dayclose(cnt);
if cnt < L6 then
var16 = var16 + dayclose(cnt);
if cnt < L7 then
var17 = var17 + dayclose(cnt);
if cnt < L8 then
var18 = var18 + dayclose(cnt);
if cnt < L9 then
var19 = var19 + dayclose(cnt);
}
mav4 = var1/P1;
mav5 = var2/p2;
mav10 = var3/P3;
mav11 = var4/P4;
mav13 = var5/P5;
mav16 = var6/P6;
mav20 = var7/P7;
mav14 = var11/L1;
mav15 = var12/L2;
mav17 = var14/L4;
mav18 = var15/L5;
mav19 = var16/L6;
mav21 = var17/L7;
mav22 = var18/L8;
mav23 = var19/L9;
cond1 = dayopen() >= mav11*0.99;
cond2 = dayopen() < mav11*0.99;
buyCond1 =dayclose(1) >= 1025 and
C > dayclose(1)*0.89 and
c <= mav13*1.005;
buyCond2 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav16*1.005;
buyCond3 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav20*1.005;
sellcond1 = C >= mav4*0.99;
sellcond2 = C >= mav5*0.99;
sellcond3 = mav4 >= mav10*0.99 and mav4 <= mav10*1.01 and
C >= mav10*0.988;
entrycount = 0;
for entrycnt = 0 to 10{
if sdate == EntryDate(entrycnt) Then
entrycount = entrycount +1;
}
if entrycount == 0 Then{
if cond1 == true Then{
if buyCond1 == true and Sdate >= 날짜 and Bcnt1 < 1 Then{
buy("13ma");
Bcnt1 = 1;
}
}
if cond1 == true or cond2 == true then{
if buyCond2 == true and Sdate >= 날짜 and Bcnt2 < 1 Then{
buy("16ma");
Bcnt2 = 1;
}
if buyCond3 == true and Sdate >= 날짜 and Bcnt3 < 1 Then{
buy("20ma");
Bcnt3 = 1;
}
}
}
if entrycount >= 1 and IsExitName("XXX",1) == False Then{
if cond1 == true Then{
if buyCond1 == true and Sdate >= 날짜 and Bcnt1 < 1 Then{
buy("13ma.");
Bcnt1 = 1;
}
}
if cond1 == true or cond2 == true then{
if buyCond2 == true and Sdate >= 날짜 and Bcnt2 < 1 Then{
buy("16ma.");
Bcnt2 = 1;
}
if buyCond3 == true and Sdate >= 날짜 and Bcnt3 < 1 Then{
buy("20ma.");
Bcnt3 = 1;
}
}
}
if MarketPosition() == 1 then{
if Bcnt1 == 1 and C <= mav14*1.005 and B11 < 1 Then{
buy("14ma");
B11 = 1;
}
if Bcnt1 == 1 and C <= mav15*1.005 and B12 < 1 Then{
buy("15ma");
B12 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt2 == 1 and C <= mav17*1.005 and B21 < 1 Then{
buy("17ma");
B21 = 1;
}
if Bcnt2 == 1 and C <= mav18*1.005 and B22 < 1 Then{
buy("18ma");
B22 = 1;
}
if Bcnt2 == 1 and C <= mav19*1.005 and B23 < 1 Then{
buy("19ma");
B23 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt3 == 1 and C <= mav21*1.005 and B31 < 1 Then{
buy("21ma");
B31 = 1;
}
if Bcnt3 == 1 and C <= mav22*1.005 and B32 < 1 Then{
buy("22ma");
B32 = 1;
}
if Bcnt3 == 1 and C <= mav23*1.005 and B33 < 1 Then{
buy("23ma");
B33 = 1;
}
}
if MarketPosition() == 1 and sellcond1 == true Then {
exitlong("4maEX1");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond2 == true Then {
exitlong("5maEX2");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond3 == true Then {
exitlong("10maEX3");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if C >= AvgEntryPrice()*1.01 Then
exitlong("XXX");
즐거운 하루되세요
> 부상전에탭치자 님이 쓴 글입니다.
> 제목 : 매수청산 부분만 수정 부탁드립니다.
> 현재 매수청산 부분 다 삭제하셔도 되구요
평균단가를 표현할수 있나요? 있다면
--------------------------------------
현재가 >=매수해서 보유한 주식의 평균단가 * 1%
이럴때 매수청산 그리고 이후엔 매수진입 안나오게끔
수정 부탁드립니다~
======================================================================
input : 날짜(20080114),P1(4),P2(5),P3(10),P4(11),P5(13),p6(16),p7(20);
input : L1(14),L2(15), L4(17),L5(18),L6(19),L7(21),L8(22),L9(23);
var : cnt(0),mav4(0),mav5(0),mav10(0),mav11(0),mav13(0),mav16(0),mav20(0);
var : cond1(False),cond2(false),Bcnt1(0),Bcnt2(0),Bcnt3(0);
var : buycond1(False),buycond2(False),buycond3(false);
var : sellcond1(False),sellcond2(False),sellcond3(false);
var : mav14(0), mav15(0),mav17(0),mav18(0),mav19(0),mav21(0),mav22(0),mav23(0);
var : B11(0),B12(0),B13(0),B21(0),B22(0),B23(0),B31(0),B32(0),B33(0);
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var11 = 0;
var12 = 0;
var13 = 0;
var14 = 0;
var15 = 0;
var16 = 0;
var17 = 0;
var18 = 0;
var19 = 0;
for cnt = 0 to L9-1{
if cnt < P1 Then
var1 = var1 + dayclose(cnt);
if cnt < P2 Then
var2 = var2 + dayclose(cnt);
if cnt < P3 Then
var3 = var3 + dayclose(cnt);
if cnt < P4 then
var4 = var4 + dayclose(cnt);
if cnt < P5 then
var5 = var5 + dayclose(cnt);
if cnt < P6 then
var6 = var6 + dayclose(cnt);
if cnt < P7 then
var7 = var7 + dayclose(cnt);
if cnt < L1 Then
var11 = var11 + dayclose(cnt);
if cnt < L2 Then
var12 = var12 + dayclose(cnt);
if cnt < L4 then
var14 = var14 + dayclose(cnt);
if cnt < L5 then
var15 = var15 + dayclose(cnt);
if cnt < L6 then
var16 = var16 + dayclose(cnt);
if cnt < L7 then
var17 = var17 + dayclose(cnt);
if cnt < L8 then
var18 = var18 + dayclose(cnt);
if cnt < L9 then
var19 = var19 + dayclose(cnt);
}
mav4 = var1/P1;
mav5 = var2/p2;
mav10 = var3/P3;
mav11 = var4/P4;
mav13 = var5/P5;
mav16 = var6/P6;
mav20 = var7/P7;
mav14 = var11/L1;
mav15 = var12/L2;
mav17 = var14/L4;
mav18 = var15/L5;
mav19 = var16/L6;
mav21 = var17/L7;
mav22 = var18/L8;
mav23 = var19/L9;
cond1 = dayopen() >= mav11*0.99;
cond2 = dayopen() < mav11*0.99;
buyCond1 =dayclose(1) >= 1025 and
C > dayclose(1)*0.89 and
c <= mav13*1.005;
buyCond2 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav16*1.005;
buyCond3 = dayclose(1) >= 1025 and
C > dayclose(1)*0.87 and
c <= mav20*1.005;
sellcond1 = C >= mav4*0.99;
sellcond2 = C >= mav5*0.99;
sellcond3 = mav4 >= mav10*0.99 and mav4 <= mav10*1.01 and
C >= mav10*0.988;
if cond1 == true Then{
if buyCond1 == true and Sdate >= 날짜 and Bcnt1 < 1 Then{
buy("13ma");
Bcnt1 = 1;
}
}
if cond1 == true or cond2 == true then{
if buyCond2 == true and Sdate >= 날짜 and Bcnt2 < 1 Then{
buy("16ma");
Bcnt2 = 1;
}
if buyCond3 == true and Sdate >= 날짜 and Bcnt3 < 1 Then{
buy("20ma");
Bcnt3 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt1 == 1 and C <= mav14*1.005 and B11 < 1 Then{
buy("14ma");
B11 = 1;
}
if Bcnt1 == 1 and C <= mav15*1.005 and B12 < 1 Then{
buy("15ma");
B12 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt2 == 1 and C <= mav17*1.005 and B21 < 1 Then{
buy("17ma");
B21 = 1;
}
if Bcnt2 == 1 and C <= mav18*1.005 and B22 < 1 Then{
buy("18ma");
B22 = 1;
}
if Bcnt2 == 1 and C <= mav19*1.005 and B23 < 1 Then{
buy("19ma");
B23 = 1;
}
}
if MarketPosition() == 1 then{
if Bcnt3 == 1 and C <= mav21*1.005 and B31 < 1 Then{
buy("21ma");
B31 = 1;
}
if Bcnt3 == 1 and C <= mav22*1.005 and B32 < 1 Then{
buy("22ma");
B32 = 1;
}
if Bcnt3 == 1 and C <= mav23*1.005 and B33 < 1 Then{
buy("23ma");
B33 = 1;
}
}
if MarketPosition() == 1 and sellcond1 == true Then {
exitlong("4maEX1");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond2 == true Then {
exitlong("5maEX2");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
if MarketPosition() == 1 and sellcond3 == true Then {
exitlong("10maEX3");
Bcnt1 = 1;
Bcnt2 = 1;
Bcnt3 = 1;
B11 = 0;
B12 = 0;
B13 = 0;
B21 = 0;
B22 = 0;
B23 = 0;
B31 = 0;
B32 = 0;
B33 = 0;
}
다음글
이전글