커뮤니티
문의드립니다.
2010-12-13 00:04:29
2158
글번호 34237
안녕하세요.
좀 복잡한데 수식 좀 부탁드립니다.
<매수조건>
1. 금일 5번째봉 종가로 선물과 데이타2가 각각 시초가보다 크고
선물은 금일의 (종가로 최고가+종가로 최저가)/2 보다 크고 금일시초가+1.5 보다 크면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타 3, 5 ,6 이 양봉이 2개이상이고 음봉이 없으면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타5, 6이 양봉이고 데이타3 이나 4가 양봉이면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타5, 6이 양봉이고 데이타2 나 3 이 양봉이면 매수
2. 현재 무포이고 12시 30분부터 13시 30분까지 종가로 선물이 최고가이고 데이타 3도 종가로 최고가이면 매수
(단 금일 매수1번조건과 매도1번 조건으로 진입이 한번도 없었거나 금일 진입후 총수익이 0.7p(변수) 이하일때만 진입)
이때 2번 매수진입 조건으로 매수진입은 하루에 한번만 하고 목표가는 2.2p이상일때 스탑으로 하고 손절은 진입후 연속 음봉이 3개이상 나오면서 손실이거나 20이평 상향돌파시 손실이면 청산하고 금일 매매종료.
<매수진입후 청산조건>
1. 선물과 데이타2가 각각 시초가보다 작고 데이타3 이 40이평이나 150이평보다 작거나 시초가보다 작으면 청산
2. 진입후 3시간 이후는 종가로 진입가보다 작고 데이타7,8, 9 중에서 데이타7이 가장 크고 데이타3 이 시초가보다 작거나 데이타3 이 40이평이나 150 이평보다 작으면 청산
---------------------------------------------------------------------------------
<매도조건>
1. 금일 5번째봉 종가로 선물과 데이타2가 각각 시초가보다 작고
선물은 금일의 (종가로 최고가+종가로 최저가)/2 보다 작고 금일시초가-1.5 보다 작으면 매도
금일 여섯째봉에서 선물이 양봉이고 데이타 3,5,6 이 음봉이 2개이상이고 양봉이 없으면 매수
금일 여섯째봉에서 선물이 양봉이고 데이타5, 6이 음봉이고 데이타3 이나 4 가 음봉이면 매수
금일 여섯째봉에서 선물이 양봉이고 데이타5, 6이 음봉이고 데이타2 나 3 이 음봉이면 매수
2. 현재 무포이고 12시 30분부터 13시 30분까지 종가로 선물이 최저가이고 데이타 3도 종가로 최저가이면 매도
(단 금일 매수1번조건과 매도1번 조건으로 진입이 한번도 없었거나 금일 진입후 총수익이 0.7p(변수) 이하일때만 진입)
이때 2번 진입조건으로 매도진입은 하루에 한번만 하고 목표가는 2.2p이상일때 스탑으로 하고 손절은 진입후 연속 양봉이 3개이상 나오면서 손실이거나 20이평 상향돌파시 손실이면 청산하고 금일 매매종료.
<매도진입후 청산조건>
1. 선물과 데이타2가 각각 시초가보다 크고 데이타3 이 40이평이나 150 이평보다 크거나 시초가보다 크면 청산
2. 진입후 3시간 이후는 종가로 진입가보다 크고 데이타7,8, 9 중에서 데이타7이 가장 작고 데이타3 이 시초가보다 크거나 데이타3 이 40이평이나 150이평보다 크면 청산
--------------------------------------------------------------------------------
<진입 제한 조건>
위에서 매수조건 1번과 매도조건 1번을 합해서 금일 장시작후 20봉이내에는 매수가 되든지 매도가 되든지 한번만 진입이 이루어져야하고 매수조건 1번으로는 하루에 매수는 한번만 진입하고 매도조건 1번으로도 하루에 매도는 한번만 진입하고 금일봉 40봉 이후네는신규진입 금지. (반대 청산과 매수조건 2번과 매도조건 2번만 진입가능)
<공통적용 청산조건>
1. 진입후부터 15봉이내에 최고값-최저값이 2.7p(변수) 이상이고 현재 수익이 2.2p(변수) 이상이면 스탑으로 수익실현하고 금일매매종료
2. 진입후부터 10봉이내에 수익이 1.1p 이상이면 스탑으로 수익실현하고 금일매매종료
4. 진입후 2.5p(변수) 이상 수익시 스탑으로 청산하고 금일 매매종료
5. 진입후 금일시초가*0.0045(변수) 이상 수익후는 봉의 종가로 본절이나 손실시 청산
6. 진입후 1시간 10분이후는 봉이 진행되면서 현재 기준으로 그이전 15봉 동안의 최고값-최저값이 3.3p(변수) 이상이고 현재 2.5p(변수)이상 수익이면 스탑으로 청산하고 금일 매매종료.
7. 14시 30분부터는
현포지션이 매수이면 20 이평 하향돌파시 청산, 포지션이 있으면 14시 45분봉이 음봉이나 음도지이면 청산후 매매종료하고 양봉이거나 양도지이면 15시에 청산후 금일 매매종료
현포지션이 매도이면 20 이평 상향돌파시 청산, 포지션이 있으면 14시 45분봉이 양봉이나 양도지이면 청산후 매매종료하고 음봉이거나 음도지이면 15시에 청산후 금일 매매종료
잘 부탁드립니다. 혹시 이해안되는 부분 있으면 연락주세요 (010-3044-6622)
답변이 조금 늦어도 좋으니 재문의 드리지 않게 신중히 부탁드립니다.
답변 2
예스스탁 예스스탁 답변
2010-12-13 11:26:32
질문이 많아 밀린내용 처리후 답변 올려드리도록 하겠습니다.
> 강태공3 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
좀 복잡한데 수식 좀 부탁드립니다.
<매수조건>
1. 금일 5번째봉 종가로 선물과 데이타2가 각각 시초가보다 크고
선물은 금일의 (종가로 최고가+종가로 최저가)/2 보다 크고 금일시초가+1.5 보다 크면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타 3, 5 ,6 이 양봉이 2개이상이고 음봉이 없으면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타5, 6이 양봉이고 데이타3 이나 4가 양봉이면 매수
금일 여섯째봉에서 선물이 음봉이고 데이타5, 6이 양봉이고 데이타2 나 3 이 양봉이면 매수
2. 현재 무포이고 12시 30분부터 13시 30분까지 종가로 선물이 최고가이고 데이타 3도 종가로 최고가이면 매수
(단 금일 매수1번조건과 매도1번 조건으로 진입이 한번도 없었거나 금일 진입후 총수익이 0.7p(변수) 이하일때만 진입)
이때 2번 매수진입 조건으로 매수진입은 하루에 한번만 하고 목표가는 2.2p이상일때 스탑으로 하고 손절은 진입후 연속 음봉이 3개이상 나오면서 손실이거나 20이평 상향돌파시 손실이면 청산하고 금일 매매종료.
<매수진입후 청산조건>
1. 선물과 데이타2가 각각 시초가보다 작고 데이타3 이 40이평이나 150이평보다 작거나 시초가보다 작으면 청산
2. 진입후 3시간 이후는 종가로 진입가보다 작고 데이타7,8, 9 중에서 데이타7이 가장 크고 데이타3 이 시초가보다 작거나 데이타3 이 40이평이나 150 이평보다 작으면 청산
---------------------------------------------------------------------------------
<매도조건>
1. 금일 5번째봉 종가로 선물과 데이타2가 각각 시초가보다 작고
선물은 금일의 (종가로 최고가+종가로 최저가)/2 보다 작고 금일시초가-1.5 보다 작으면 매도
금일 여섯째봉에서 선물이 양봉이고 데이타 3,5,6 이 음봉이 2개이상이고 양봉이 없으면 매수
금일 여섯째봉에서 선물이 양봉이고 데이타5, 6이 음봉이고 데이타3 이나 4 가 음봉이면 매수
금일 여섯째봉에서 선물이 양봉이고 데이타5, 6이 음봉이고 데이타2 나 3 이 음봉이면 매수
2. 현재 무포이고 12시 30분부터 13시 30분까지 종가로 선물이 최저가이고 데이타 3도 종가로 최저가이면 매도
(단 금일 매수1번조건과 매도1번 조건으로 진입이 한번도 없었거나 금일 진입후 총수익이 0.7p(변수) 이하일때만 진입)
이때 2번 진입조건으로 매도진입은 하루에 한번만 하고 목표가는 2.2p이상일때 스탑으로 하고 손절은 진입후 연속 양봉이 3개이상 나오면서 손실이거나 20이평 상향돌파시 손실이면 청산하고 금일 매매종료.
<매도진입후 청산조건>
1. 선물과 데이타2가 각각 시초가보다 크고 데이타3 이 40이평이나 150 이평보다 크거나 시초가보다 크면 청산
2. 진입후 3시간 이후는 종가로 진입가보다 크고 데이타7,8, 9 중에서 데이타7이 가장 작고 데이타3 이 시초가보다 크거나 데이타3 이 40이평이나 150이평보다 크면 청산
--------------------------------------------------------------------------------
<진입 제한 조건>
위에서 매수조건 1번과 매도조건 1번을 합해서 금일 장시작후 20봉이내에는 매수가 되든지 매도가 되든지 한번만 진입이 이루어져야하고 매수조건 1번으로는 하루에 매수는 한번만 진입하고 매도조건 1번으로도 하루에 매도는 한번만 진입하고 금일봉 40봉 이후네는신규진입 금지. (반대 청산과 매수조건 2번과 매도조건 2번만 진입가능)
<공통적용 청산조건>
1. 진입후부터 15봉이내에 최고값-최저값이 2.7p(변수) 이상이고 현재 수익이 2.2p(변수) 이상이면 스탑으로 수익실현하고 금일매매종료
2. 진입후부터 10봉이내에 수익이 1.1p 이상이면 스탑으로 수익실현하고 금일매매종료
4. 진입후 2.5p(변수) 이상 수익시 스탑으로 청산하고 금일 매매종료
5. 진입후 금일시초가*0.0045(변수) 이상 수익후는 봉의 종가로 본절이나 손실시 청산
6. 진입후 1시간 10분이후는 봉이 진행되면서 현재 기준으로 그이전 15봉 동안의 최고값-최저값이 3.3p(변수) 이상이고 현재 2.5p(변수)이상 수익이면 스탑으로 청산하고 금일 매매종료.
7. 14시 30분부터는
현포지션이 매수이면 20 이평 하향돌파시 청산, 포지션이 있으면 14시 45분봉이 음봉이나 음도지이면 청산후 매매종료하고 양봉이거나 양도지이면 15시에 청산후 금일 매매종료
현포지션이 매도이면 20 이평 상향돌파시 청산, 포지션이 있으면 14시 45분봉이 양봉이나 양도지이면 청산후 매매종료하고 음봉이거나 음도지이면 15시에 청산후 금일 매매종료
잘 부탁드립니다. 혹시 이해안되는 부분 있으면 연락주세요 (010-3044-6622)
답변이 조금 늦어도 좋으니 재문의 드리지 않게 신중히 부탁드립니다.
예스스탁 예스스탁 답변
2010-12-15 16:06:55
수정한 식입니다.
input : 금일총손익(0.7);
var : cnt(0,data1),PLR(0,data1),XCommission(0,data1),XSlippage(0,data1),OpenPL(0,data1),dayPL(0,data1);
var : Bcnt(0,data1),Scnt(0,data1),count(0,data1),B2cnt(0,data1),S2cnt(0,data1),idx1(0,data1);
var : D3W(0,data3),D3B(0,data3),D5W(0,data5),D5B(0,data5),D6W(0,data6),D6B(0,data6);
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
#당일총손익 및 b2진입,B3진입 카운트
count = 0;
PLR = 0;
B2cnt = 0;
S2cnt = 0;
Bcnt = 0;
Scnt = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then{
count = count+1;
if MarketPosition(cnt) == 1 Then
Bcnt = Bcnt+1;
if MarketPosition(cnt) == -1 Then
Scnt = Scnt+1;
if IsEntryName("B2",cnt) == true Then
B2cnt = B2cnt+1;
if IsEntryName("S2",cnt) == true Then
S2cnt = S2cnt+1;
}
if cnt >= 1 and sdate == EntryDate(cnt) Then{
PLR = PLR+PositionProfit(cnt);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
DayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
DayPL = PLR+OpenPL;
}
#data3,5,6 양봉음봉 갯수 카운트
if data3(date!=date[1]) Then{ D3W = 0; D3B = 0;}
if data5(date!=date[1]) Then{ D5W = 0; D5B = 0;}
if data6(date!=date[1]) Then{ D6W = 0; D6B = 0;}
if data3(C > O) Then D3W = D3W+1;
if data3(C < O) Then D3B = D3B+1;
if data5(C > O) Then D5W = D5W+1;
if data5(C < O) Then D5B = D5B+1;
if data6(C > O) Then D6W = D6W+1;
if data6(C < O) Then D6B = D6B+1;
Condition1 = ExitDate(1) == sdate And
(IsExitName("b0x1",1) or IsExitName("b0x2",1) or IsExitName("b0x4",1) or IsExitName("b0x6",1) or IsExitName("b0x7",1) Or
IsExitName("s0x1",1) or IsExitName("s0x2",1) or IsExitName("s0x4",1) or IsExitName("s0x6",1) or IsExitName("s0x7",1) Or
IsExitName("b2x1",1) or IsExitName("b2x2",1) or IsExitName("s2x1",1) or IsExitName("s2x2",1));
#매수1(20개봉 이전)
if (dayindex+1) < 20 and count == 0 and Condition1 == False Then{
if data1(dayindex+1) >= 5 And data1(c> dayopen) and data2(C> OpenD(0)) And
data1(C >(highest(H,dayindex+1)+Lowest(C,dayindex+1))/2) And
data1(C > DayOpen+0.5) Then
buy("b1_1");
if data1(dayindex+1) == 6 and data1(C<O) and D3W >= 2 and D5W >= 2 and D6W >= 2 And
D3B == 0 and D5B == 0 and D6B == 0 Then
buy("b1_2");
if data1(dayindex+1) == 6 and data1(C<O) and Data5(C>O) and DAta6(C>O) and (DAta3(C>O) or Data4(C>O)) Then
buy("b1_3");
if data1(dayindex+1) == 6 and data1(C<O) and Data5(C>O) and DAta6(C>O) and (DAta2(C>O) or Data3(C>O)) Then
buy("b1_4");
}
#매수1(20~40개봉 사이)
if (dayindex+1) >= 20 and (dayindex+1) <= 40 and Bcnt < 1 and Condition1 == False Then{
if data1(dayindex+1) >= 5 And data1(c> dayopen) and data2(C> OpenD(0)) And
data1(C >(highest(H,dayindex+1)+Lowest(C,dayindex+1))/2) And
data1(C > DayOpen+1.5) Then
buy("b1_1.");
if data1(dayindex+1) == 6 and data1(C<O) and D3W >= 2 and D5W >= 2 and D6W >= 2 And
D3B == 0 and D5B == 0 and D6B == 0 Then
buy("b1_2.");
if data1(dayindex+1) == 6 and data1(C<O) and Data5(C>O) and DAta6(C>O) and (DAta3(C>O) or Data4(C>O)) Then
buy("b1_3.");
if data1(dayindex+1) == 6 and data1(C<O) and Data5(C>O) and DAta6(C>O) and (DAta2(C>O) or Data3(C>O)) Then
buy("b1_4.");
}
#매수2
if MarketPosition == 0 And Condition1 == False and
data1(dayindex+1) >= 50 and data1(dayindex+1) <= 70 And
highest(C,dayindex+1) == C and data3(C==highest(H,dayindex+1)) and (dayPL <= 금일총손익 or count < 1) and B2cnt < 1 Then
buy("b2");
#b2전용 청산
if MarketPosition == 1 and IsEntryName("b2") Then{
exitlong("b2x1",AtLimit,EntryPrice+2.2);
if C < EntryPrice Then{
if data1(countif(C<O,3)) == 3 or data1(CrossDown(c,ma(c,20))) Then
ExitLong("b2x2");
}
}
#매수진입 후 청산조건
if MarketPosition == 1 and IsEntryName("b2") == false Then{
if data1(C< dayopen) and
Data2(C< Opend(0)) And
data3(C< ma(c,40) or C < ma(c,150) or C < OpenD(0)) Then
exitlong("Bx1");
if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+180 And
C < EntryPrice And
max(data7(c),data8(c),data9(c)) == data7(c) And
data3(C< OpenD(0) or C < ma(c,40) or C < ma(C,150)) Then
exitlong("bx2");
}
#########################################
#매도1(20개봉 이전)
if (dayindex+1) < 20 and count == 0 and (dayindex+1) <= 40 and Condition1 == False Then{
if data1(dayindex+1) >= 5 And data1(c < dayopen) and data2(C < OpenD(0)) And
data1(C < (highest(H,dayindex+1)+Lowest(C,dayindex+1))/2) And
data1(C < DayOpen-0.5) Then
Sell("S1_1");
if data1(dayindex+1) == 6 and data1(C>O) and D3B >= 2 and D5B >= 2 and D6B >= 2 And
D3W == 0 and D5W == 0 and D6W == 0 Then
Sell("S1_2");
if data1(dayindex+1) == 6 and data1(C>O) and Data5(C<O) and DAta6(C<O) and (DAta3(C<O) or Data4(C<O)) Then
Sell("S1_3");
if data1(dayindex+1) == 6 and data1(C>O) and Data5(C<O) and DAta6(C<O) and (DAta2(C<O) or Data3(C<O)) Then
Sell("S1_4");
}
#매도1(20~40사이)
if (dayindex+1) >= 20 and (dayindex+1) >= 40 and Scnt < 1 and Condition1 == False Then{
if data1(dayindex+1) >= 5 And data1(c < dayopen) and data2(C < OpenD(0)) And
data1(C < (highest(H,dayindex+1)+Lowest(C,dayindex+1))/2) And
data1(C < DayOpen-1.5) Then
Sell("S1_1.");
if data1(dayindex+1) == 6 and data1(C>O) and D3B >= 2 and D5B >= 2 and D6B >= 2 And
D3W == 0 and D5W == 0 and D6W == 0 Then
Sell("S1_2.");
if data1(dayindex+1) == 6 and data1(C>O) and Data5(C<O) and DAta6(C<O) and (DAta3(C<O) or Data4(C<O)) Then
Sell("S1_3.");
if data1(dayindex+1) == 6 and data1(C>O) and Data5(C<O) and DAta6(C<O) and (DAta2(C<O) or Data3(C<O)) Then
Sell("S1_4.");
}
#매도2
if MarketPosition == 0 And Condition1 == False and
data1(dayindex+1) >= 50 and data1(dayindex+1) <= 70 And
data1(Lowest(C,dayindex+1) == C) and data3(C==Lowest(C,dayindex+1)) and (dayPL <= 금일총손익 or count < 1) and S2cnt < 1 Then
Sell("S2");
#S2전용 청산
if MarketPosition == -1 and IsEntryName("S2") Then{
ExitShort("S2x1",AtLimit,EntryPrice-2.2);
if C > EntryPrice Then{
if data1(countif(C>O,3)) == 3 or data1(CrossUp(c,ma(c,20))) Then
ExitShort("S2x2");
}
}
#매도진입 후 청산조건
if MarketPosition == -1 and IsEntryName("S2") == false Then{
if data1(C > dayopen) and
Data2(C> Opend(0)) And
data3(C> ma(c,40) or C > ma(c,150) or C > OpenD(0)) Then
ExitShort("Sx1");
if TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+180 And
C > EntryPrice And
min(data7(c),data8(c),data9(c)) == data7(c) And
data3(C> OpenD(0) or C > ma(c,40) or C > ma(C,150)) Then
ExitShort("Sx2");
}
##############################
#공통적용청산1
input: R1(2.7),Profit1(2.2);
if BarsSinceEntry <= 15 And highest(H,BarsSinceEntry+1)-Lowest(L,BarsSinceEntry) >= R1 Then{
if MarketPosition == 1 Then
exitlong("b0x1",atlimit,EntryPrice+Profit1);
if MarketPosition == -1 Then
ExitShort("S0x1",atlimit,EntryPrice-Profit1);
}
#공통적용청산2
if MarketPosition == 1 Then{
if BarsSinceEntry < 10 Then
exitlong("b0x2",atlimit,EntryPrice+1.1);
}
if MarketPosition == -1 Then{
if BarsSinceEntry < 10 Then
ExitShort("s0x2",atlimit,EntryPrice-1.1);
}
#공통적용청산4
input : Profit4(2.5);
SetStopProfittarget(Profit4,PointStop);
#공통적용청산5
input : P1(0.0045);
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) >= EntryPrice+(dayopen*P1) and CrossDown(c,EntryPrice) Then
exitlong("b0x5");
}
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-(dayopen*P1) and Crossup(C,EntryPrice) Then
ExitShort("s0x5");
}
#공통적용청산6
input : R6(3.3),Profit6(2.5);
if MarketPosition == 1 and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+70 Then{
if highest(H,15)-Lowest(L,15) >= R6 Then
exitlong("b0x6",Atlimit,EntryPrice+Profit6);
}
if MarketPosition == -1 and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+70 Then{
if highest(H,15)-Lowest(L,15) >= R6 Then
ExitShort("s0x6",Atlimit,EntryPrice-Profit6);
}
if (dayindex+1) == 1 Then
idx1 = stime;
#공통적용청산7
if MarketPosition == 1 and ((idx1 == 90000 and stime >= 143000) or (idx1 == 100000 and stime >= 153000)) Then{
if CrossDown(c,ma(C,20)) or (stime == 144500 and (C<O or (C==O and C<C[1]))) Then
ExitLong("b0x7");
}
if MarketPosition == -1 and ((idx1 == 90000 and stime >= 143000) or (idx1 == 100000 and stime >= 153000)) Then{
if CrossUp(c,ma(C,20)) or (stime == 144500 and (C>O or (C==O and C>=C[1]))) Then
ExitShort("s0x7");
}
if idx1 == 90000 then
SetStopEndofday(150000);
Else
SetStopEndofday(160000);
즐거운 하루되세요