커뮤니티
왜 역매도 진입이후 바로 청산이 나오는 건가요?
2012-03-20 17:58:30
337
글번호 49162
안녕하세요..
역매도 들어가고 바로 그봉에서 청산을 해버리네여..
input : len(3.2), len1(0.34), len2(0.07);
var : cnt(0), cond1(False), cond2(False);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
cond1 = false;
cond2 = false;
for cnt = 0 to 10{
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 Then
Cond1 = true;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 Then
Cond2 = true;
}
if stime < 150000 then {
if cond1 == False then{
if dayopen > var1 and MarketPosition != 1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
}
If DayOpen <= var1 and DayOpen>=var2 Then{
if daylow < var2 and high <var2+(var1-var2)*len1 Then{
buy("역매수",atstop, var2+(var1-var2)*len2);
}
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
}
}
if cond2 == False and MarketPosition != -1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
}
if DayOpen <= var1 and DayOpen >= var2 Then {
if DayHigh>var1 and low < var1- (var1-var2)*len1 then {
sell("역매도", AtStop, var1-(var1-var2)*len1);
}
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
}
}
}
if MarketPosition <>0 Then {
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
}
SetStopEndofday(150400);
- 1. 49515_1.jpg (0.25 MB)
답변 1
예스스탁 예스스탁 답변
2012-03-21 10:31:19
안녕하세요
예스스탁입니다.
하나의 봉에서 진입과 청산이 모두 스탑이 걸려 다음봉을
감시하므로 발생하는 내용입니다.
아래와 같이 수정하시면 됩니다.
input : len(3.2), len1(0.34), len2(0.07);
var : cnt(0), cond1(False), cond2(False);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
cond1 = false;
cond2 = false;
for cnt = 0 to 10{
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 Then
Cond1 = true;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 Then
Cond2 = true;
}
if stime < 150000 then {
if cond1 == False then{
if dayopen > var1 and MarketPosition != 1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
}
If DayOpen <= var1 and DayOpen>=var2 Then{
if daylow < var2 and high <var2+(var1-var2)*len1 Then{
buy("역매수",atstop, var2+(var1-var2)*len2);
}
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
}
}
if cond2 == False and MarketPosition != -1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
}
if DayOpen <= var1 and DayOpen >= var2 Then {
if DayHigh>var1 and low < var1- (var1-var2)*len1 then {
sell("역매도", AtStop, var1-(var1-var2)*len1);
}
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
}
}
}
if MarketPosition == 1 Then
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
if MarketPosition == -1 Then
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
SetStopEndofday(150400);
즐거운 하루되세요
> rlaxoeh 님이 쓴 글입니다.
> 제목 : 왜 역매도 진입이후 바로 청산이 나오는 건가요?
> 안녕하세요..
역매도 들어가고 바로 그봉에서 청산을 해버리네여..
input : len(3.2), len1(0.34), len2(0.07);
var : cnt(0), cond1(False), cond2(False);
if dayopen > DayClose(1) Then{ ## 전종가보다 오픈가격이 높으면
var1 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)+DayLow(1)*2)/2 - DayHigh(1);
}
if DayOpen < DayClose(1) then{ ##전종가보다 오프가격이 낮으면
var1 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)*2+DayClose(1)+DayLow(1))/2 - DayHigh(1);
}
if DayOpen == DayClose(1) then{ ##전종가보다 오프가격이 같으면
var1 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - daylow(1);
var2 = (DayHigh(1)+DayClose(1)*2+DayLow(1))/2 - DayHigh(1);
}
cond1 = false;
cond2 = false;
for cnt = 0 to 10{
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 Then
Cond1 = true;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 Then
Cond2 = true;
}
if stime < 150000 then {
if cond1 == False then{
if dayopen > var1 and MarketPosition != 1 Then{
buy("매수1", atstop, dayopen+(var1-var2)*len1);
}
If DayOpen <= var1 and DayOpen>=var2 Then{
if daylow < var2 and high <var2+(var1-var2)*len1 Then{
buy("역매수",atstop, var2+(var1-var2)*len2);
}
}
if dayopen < var2 Then{
buy("매수4", atstop, var2);
}
}
if cond2 == False and MarketPosition != -1 then{
if dayopen > var1 then{
sell("매도1",atstop, var1);
}
if DayOpen <= var1 and DayOpen >= var2 Then {
if DayHigh>var1 and low < var1- (var1-var2)*len1 then {
sell("역매도", AtStop, var1-(var1-var2)*len1);
}
}
if dayopen <var2 Then{
sell("매도", atstop, dayopen-(var1-var2)*len1);
}
}
}
if MarketPosition <>0 Then {
exitlong("매수청산", atstop, Highest(H,BarsSinceEntry+1)-atr(20)*len);
exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry+1)+atr(20)*len);
}
SetStopEndofday(150400);
다음글
이전글