커뮤니티
수식 좀 변경해 주십시요.
2010-01-15 13:01:38
688
글번호 27460
점선 아래 수식을 좀 변경해 주십시오.
*매수조건에서...
1번. CCI(20)이 -100을 상향..... -> "일봉상 전일까지 연속 3음봉이면, 당일 시가에 매수" 로 변경해 주십시요
5번. 매수 단위 20만원을... ->삭제해 주세요(매매금액은 자동매매 설정하는 창에서 설정할 예정)
감사합니다.
--------------------------------------------------------
<현물>
*매수조건(분봉에서 운용 예정)
1.일봉상 CCI(20)이 -100을 상향 돌파하면, 다음날 시가에 최초 매수
(최초 매수가 된 이후 청산이 되지 않은 상태에서는, CCI -100을 상향 돌파해도 매수하지 않음)
2.최초 매수가 대비 20% 하락하면 추가매수
3. “ 40% 하락하면 추가매수
4. “ 60% 하락하면 추가매수... 계속
5.매수 단위 금액은 20만원
*매도조건
-매수금액. 매수가를 총 평균하여 5%수익이 발생하면 전량 청산
(손실일 때는 청산하지 않음)
Inputs: Length(20);
Variables: Sum(0), Counter(0), MD(0), Avgvalue(0),cnt(0),sum1(0),CCIV(0);
Variables: preSum(0), preCounter(0), preMD(0), preAvgvalue(0),precnt(0),presum1(0),preCCIV(0);
if DayClose(Length) > 0 Then{
sum1 = 0;
for cnt = 0 to Length-1{
sum1 = sum1 +(dayhigh(cnt)+daylow(cnt)+DayClose(cnt));
}
Avgvalue = sum1/Length;
MD = 0;
For counter = 0 To Length - 1 Begin
MD = MD + Abs(dayhigh(counter) + daylow(counter) + DayClose(counter) - Avgvalue);
End;
MD = MD / Length;
If MD == 0 Then
CCIv = 0;
Else
CCIv = (dayhigh + daylow + DayClose - Avgvalue) / (0.015 * MD);
}
Else
CCIv = 0;
if DayClose(Length+1) > 0 Then{
presum1 = 0;
for precnt = 1 to Length{
presum1 = presum1 +(dayhigh(precnt)+daylow(precnt)+DayClose(precnt));
}
preAvgvalue = presum1/Length;
preMD = 0;
For precounter = 1 To Length Begin
preMD = preMD + Abs(dayhigh(precounter) + daylow(precounter) + DayClose(precounter) - preAvgvalue);
End;
preMD = preMD / Length;
If preMD == 0 Then
preCCIv = 0;
Else
preCCIv = (dayhigh(1) + daylow(1) + DayClose(1) - preAvgvalue) / (0.015 * PreMD);
}
Else
preCCIv = 0;
if CodeCategory == 1 Then{
var1 = int(int(200000/C)/10)*10;
}
if CodeCategory == 2 Then{
var1 = int(200000/C);
}
if stime == 150000 and CCIV > -100 and PreCCIV < -100 and MarketPosition == 0 Then
buy("b1",AtMarket);
if MarketPosition == 1 Then{
if CurrentEntries == 1 Then
buy("b2",atlimit,EntryPrice*0.8,var1);
if CurrentEntries == 2 Then
buy("b3",atlimit,EntryPrice*0.6,var1);
if CurrentEntries == 3 Then
buy("b4",atlimit,EntryPrice*0.4,var1);
if CurrentEntries == 4 Then
buy("b5",atlimit,EntryPrice*0.2,var1);
exitlong("bx",atlimit,AvgEntryPrice*1.05);
}
답변 1
예스스탁 예스스탁 답변
2010-01-15 13:02:43
안녕하세요
예스스탁입니다.
input : 전일날짜(20100114);
if stime == 150000 and MarketPosition == 0 and sdate == 전일날짜 Then
buy("b1",AtMarket);
if MarketPosition == 1 Then{
if CurrentEntries == 1 Then
buy("b2",atlimit,EntryPrice*0.8);
if CurrentEntries == 2 Then
buy("b3",atlimit,EntryPrice*0.6);
if CurrentEntries == 3 Then
buy("b4",atlimit,EntryPrice*0.4);
if CurrentEntries == 4 Then
buy("b5",atlimit,EntryPrice*0.2);
exitlong("bx",atlimit,AvgEntryPrice*1.05);
}
차트에 식을 거실때 전일날짜를 입력해 주셔야 합니다.
차트는 1분봉으로 5000개를 불러오시면 됩니다. 그러면 항상 거시는날의 시초가에 매수가 발생합니다.
> 쌀사비팔 님이 쓴 글입니다.
> 제목 : 수식 좀 변경해 주십시요.
> 점선 아래 수식을 좀 변경해 주십시오.
*매수조건에서...
1번. CCI(20)이 -100을 상향..... -> "당일 시가에 조건 없이 최초 매수로 변경"(종목을 선정하여 당일 장 시작전에 자동 매매 차트에 적용하면 당일 시가에 무조건 매수하려고 하는 것입니다. 그런데, 이 적용 방법이 쉽지 않을 것 같은데 가능한지요? 즉, 차트를 수일간 적용해도, 적용된 차트의 첫날 시가에 매수되지 않고, 당일 시가에 매수되게 할 수 있는지요? 가능한 방법이 있으면 부탁드립니다.
{{만약에 방법이 없다면, -> "일봉상 전일까지 연속 3음봉이면, 당일 시가에 매수" 로 변경해 주십시요.}}
5번. 매수 단위 20만원을... ->삭제해 주세요(매매금액은 자동매매 설정하는 창에서 설정할 예정)
감사합니다.
--------------------------------------------------------
<현물>
*매수조건(분봉에서 운용 예정)
1.일봉상 CCI(20)이 -100을 상향 돌파하면, 다음날 시가에 최초 매수
(최초 매수가 된 이후 청산이 되지 않은 상태에서는, CCI -100을 상향 돌파해도 매수하지 않음)
2.최초 매수가 대비 20% 하락하면 추가매수
3. “ 40% 하락하면 추가매수
4. “ 60% 하락하면 추가매수... 계속
5.매수 단위 금액은 20만원
*매도조건
-매수금액. 매수가를 총 평균하여 5%수익이 발생하면 전량 청산
(손실일 때는 청산하지 않음)
Inputs: Length(20);
Variables: Sum(0), Counter(0), MD(0), Avgvalue(0),cnt(0),sum1(0),CCIV(0);
Variables: preSum(0), preCounter(0), preMD(0), preAvgvalue(0),precnt(0),presum1(0),preCCIV(0);
if DayClose(Length) > 0 Then{
sum1 = 0;
for cnt = 0 to Length-1{
sum1 = sum1 +(dayhigh(cnt)+daylow(cnt)+DayClose(cnt));
}
Avgvalue = sum1/Length;
MD = 0;
For counter = 0 To Length - 1 Begin
MD = MD + Abs(dayhigh(counter) + daylow(counter) + DayClose(counter) - Avgvalue);
End;
MD = MD / Length;
If MD == 0 Then
CCIv = 0;
Else
CCIv = (dayhigh + daylow + DayClose - Avgvalue) / (0.015 * MD);
}
Else
CCIv = 0;
if DayClose(Length+1) > 0 Then{
presum1 = 0;
for precnt = 1 to Length{
presum1 = presum1 +(dayhigh(precnt)+daylow(precnt)+DayClose(precnt));
}
preAvgvalue = presum1/Length;
preMD = 0;
For precounter = 1 To Length Begin
preMD = preMD + Abs(dayhigh(precounter) + daylow(precounter) + DayClose(precounter) - preAvgvalue);
End;
preMD = preMD / Length;
If preMD == 0 Then
preCCIv = 0;
Else
preCCIv = (dayhigh(1) + daylow(1) + DayClose(1) - preAvgvalue) / (0.015 * PreMD);
}
Else
preCCIv = 0;
if CodeCategory == 1 Then{
var1 = int(int(200000/C)/10)*10;
}
if CodeCategory == 2 Then{
var1 = int(200000/C);
}
if stime == 150000 and CCIV > -100 and PreCCIV < -100 and MarketPosition == 0 Then
buy("b1",AtMarket);
if MarketPosition == 1 Then{
if CurrentEntries == 1 Then
buy("b2",atlimit,EntryPrice*0.8,var1);
if CurrentEntries == 2 Then
buy("b3",atlimit,EntryPrice*0.6,var1);
if CurrentEntries == 3 Then
buy("b4",atlimit,EntryPrice*0.4,var1);
if CurrentEntries == 4 Then
buy("b5",atlimit,EntryPrice*0.2,var1);
exitlong("bx",atlimit,AvgEntryPrice*1.05);
}