커뮤니티
수식변경부탁요
2013-04-12 16:44:50
146
글번호 62020
아침10시 까지만 매수가능하게 해주세요
input : 투입금액(2000000),P(5);
var : 상한가(0), UpLimit(0),sum(0),cnt(0),daymav(0),count(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),entryVol(0),Xvol(0);
#kospi
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
entryVol = int(int(투입금액/C)/10)*10;
Else #5만원 이상
entryVol = int(투입금액/C);
}
#kosdoq
if CodeCategory == 2 Then
entryVol = int(투입금액/C);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else
UpLimit = (BP[0] * 1.15);
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;
}
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;
}
}
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;
}
if CodeCategory() == 1 || CodeCategory() == 2 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
상한가 = iff(up6>=5000, up5, up6);
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
daymav = sum/P;
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if MarketPosition == 0 and count < 2 and stime < 140000 Then
buy("매수",AtStop,상한가*0.99,entryVol);
if MarketPosition == 1 Then{
#청산수량 50% 계산
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
Xvol = int(int(MaxContracts*0.5)/10)*10;
Else #5만원 이상
Xvol = int(MaxContracts*0.5);
}
if CodeCategory == 2 Then
Xvol = int(MaxContracts*0.5);
if CurrentContracts == MaxContracts Then
exitlong("매도1",AtLimit,EntryPrice*1.03,"",Xvol,1);
if CurrentContracts < MaxContracts and stime == 143000 and C < daymav Then
exitlong("매도2");
}
SetStopLoss(2,PercentStop);
답변 1
예스스탁 예스스탁 답변
2013-04-12 18:27:00
안녕하세요
예스스탁입니다.
input : 투입금액(2000000),P(5);
var : 상한가(0), UpLimit(0),sum(0),cnt(0),daymav(0),count(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),entryVol(0),Xvol(0);
#kospi
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
entryVol = int(int(투입금액/C)/10)*10;
Else #5만원 이상
entryVol = int(투입금액/C);
}
#kosdoq
if CodeCategory == 2 Then
entryVol = int(투입금액/C);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else
UpLimit = (BP[0] * 1.15);
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;
}
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;
}
}
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;
}
if CodeCategory() == 1 || CodeCategory() == 2 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
상한가 = iff(up6>=5000, up5, up6);
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
daymav = sum/P;
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if MarketPosition == 0 and count < 2 and stime < 100000 Then
buy("매수",AtStop,상한가*0.99,entryVol);
if MarketPosition == 1 Then{
#청산수량 50% 계산
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
Xvol = int(int(MaxContracts*0.5)/10)*10;
Else #5만원 이상
Xvol = int(MaxContracts*0.5);
}
if CodeCategory == 2 Then
Xvol = int(MaxContracts*0.5);
if CurrentContracts == MaxContracts Then
exitlong("매도1",AtLimit,EntryPrice*1.03,"",Xvol,1);
if CurrentContracts < MaxContracts and stime == 143000 and C < daymav Then
exitlong("매도2");
}
SetStopLoss(2,PercentStop);
즐거운 하루되세요
> HI_jht7469 님이 쓴 글입니다.
> 제목 : 수식변경부탁요
> 아침10시 까지만 매수가능하게 해주세요
input : 투입금액(2000000),P(5);
var : 상한가(0), UpLimit(0),sum(0),cnt(0),daymav(0),count(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),entryVol(0),Xvol(0);
#kospi
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
entryVol = int(int(투입금액/C)/10)*10;
Else #5만원 이상
entryVol = int(투입금액/C);
}
#kosdoq
if CodeCategory == 2 Then
entryVol = int(투입금액/C);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else
UpLimit = (BP[0] * 1.15);
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;
}
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;
}
}
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;
}
if CodeCategory() == 1 || CodeCategory() == 2 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
상한가 = iff(up6>=5000, up5, up6);
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
daymav = sum/P;
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if MarketPosition == 0 and count < 2 and stime < 140000 Then
buy("매수",AtStop,상한가*0.99,entryVol);
if MarketPosition == 1 Then{
#청산수량 50% 계산
if CodeCategory == 1 Then{
if BasePrice < 50000 Then #기준가 5만원 미만
Xvol = int(int(MaxContracts*0.5)/10)*10;
Else #5만원 이상
Xvol = int(MaxContracts*0.5);
}
if CodeCategory == 2 Then
Xvol = int(MaxContracts*0.5);
if CurrentContracts == MaxContracts Then
exitlong("매도1",AtLimit,EntryPrice*1.03,"",Xvol,1);
if CurrentContracts < MaxContracts and stime == 143000 and C < daymav Then
exitlong("매도2");
}
SetStopLoss(2,PercentStop);
이전글