커뮤니티

뭔지...

프로필 이미지
rlaxoeh
2012-03-19 15:09:51
288
글번호 49075
답변완료
안녕하세요.. 책에 보니까 아래와 같은게 있는데 왜 쓰는 건가요? cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 답변 부탁 드립니다.^^ input : len(3.2), len1(3.7); var : 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 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; if stime < 150000 then { if cond1 == False then{ if dayopen > var1 Then{ buy("매수1", atstop, dayopen+(var1-var2)*len1); } if dayopen < var2 Then{ buy("매수4", atstop, var2); } } if cond2 == False then{ if dayopen > var1 then{ sell("매도1",atstop, var1); } if dayopen <var2 Then{ sell("매도", atstop, dayopen-(var1-var2)*len1); } } } if MarketPosition <>0 Then { exitlong("매수청산", atstop, Highest(H,BarsSinceEntry)-atr(20)*len); exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry)+atr(20)*len); } SetStopEndofday(150400);
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2012-03-19 16:07:16

안녕하세요 예스스탁입니다. cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 당일 매수거래가 한번이라도 있었으면 cond1는 true가 되고 당일 매도거래가 한번이라도 있었으면 cond2는 true가 되는 내용입니다. 당일 매수와 매도거래 각 1번씩만 하고자 할때 사용하는 표현입니다. 즐거운 하루되세요 > rlaxoeh 님이 쓴 글입니다. > 제목 : 뭔지... > 안녕하세요.. 책에 보니까 아래와 같은게 있는데 왜 쓰는 건가요? cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 답변 부탁 드립니다.^^ input : len(3.2), len1(3.7); var : 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 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; if stime < 150000 then { if cond1 == False then{ if dayopen > var1 Then{ buy("매수1", atstop, dayopen+(var1-var2)*len1); } if dayopen < var2 Then{ buy("매수4", atstop, var2); } } if cond2 == False then{ if dayopen > var1 then{ sell("매도1",atstop, var1); } if dayopen <var2 Then{ sell("매도", atstop, dayopen-(var1-var2)*len1); } } } if MarketPosition <>0 Then { exitlong("매수청산", atstop, Highest(H,BarsSinceEntry)-atr(20)*len); exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry)+atr(20)*len); } SetStopEndofday(150400);
프로필 이미지

rlaxoeh

2012-03-19 16:34:29

그런데 매수 이후 청산을 하고 다시 바로 매수로 들어가는데요.. ... .. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 뭔지... > 안녕하세요 예스스탁입니다. cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 당일 매수거래가 한번이라도 있었으면 cond1는 true가 되고 당일 매도거래가 한번이라도 있었으면 cond2는 true가 되는 내용입니다. 당일 매수와 매도거래 각 1번씩만 하고자 할때 사용하는 표현입니다. 즐거운 하루되세요 > rlaxoeh 님이 쓴 글입니다. > 제목 : 뭔지... > 안녕하세요.. 책에 보니까 아래와 같은게 있는데 왜 쓰는 건가요? cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 답변 부탁 드립니다.^^ input : len(3.2), len1(3.7); var : 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 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; if stime < 150000 then { if cond1 == False then{ if dayopen > var1 Then{ buy("매수1", atstop, dayopen+(var1-var2)*len1); } if dayopen < var2 Then{ buy("매수4", atstop, var2); } } if cond2 == False then{ if dayopen > var1 then{ sell("매도1",atstop, var1); } if dayopen <var2 Then{ sell("매도", atstop, dayopen-(var1-var2)*len1); } } } if MarketPosition <>0 Then { exitlong("매수청산", atstop, Highest(H,BarsSinceEntry)-atr(20)*len); exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry)+atr(20)*len); } SetStopEndofday(150400);
프로필 이미지

예스스탁 예스스탁 답변

2012-03-19 17:48:39

안녕하세요 예스스탁입니다. 진입은 현재봉의 완성시에 스탑을 걸어 다음봉의 시세를 감시하는 타입이고 exitdate(1)이나 marketposition은 봉완성시에 최종값을 가지므로 봉미완성시에 청산후 또다시 진입이발생할수 있는 식입니다. 아래와 같이 수정하셔서 사용하시면 됩니다. input : len(3.2), len1(3.7); 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 < var2 Then{ buy("매수4", atstop, var2); } } if cond2 == False and MarketPosition != -1 then{ if dayopen > var1 then{ sell("매도1",atstop, var1); } if dayopen <var2 Then{ sell("매도", atstop, dayopen-(var1-var2)*len1); } } } if MarketPosition <>0 Then { exitlong("매수청산", atstop, Highest(H,BarsSinceEntry)-atr(20)*len); exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry)+atr(20)*len); } SetStopEndofday(150400); 즐거운 하루되세요 > rlaxoeh 님이 쓴 글입니다. > 제목 : Re : Re : 뭔지... > 그런데 매수 이후 청산을 하고 다시 바로 매수로 들어가는데요.. ... .. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 뭔지... > 안녕하세요 예스스탁입니다. cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 당일 매수거래가 한번이라도 있었으면 cond1는 true가 되고 당일 매도거래가 한번이라도 있었으면 cond2는 true가 되는 내용입니다. 당일 매수와 매도거래 각 1번씩만 하고자 할때 사용하는 표현입니다. 즐거운 하루되세요 > rlaxoeh 님이 쓴 글입니다. > 제목 : 뭔지... > 안녕하세요.. 책에 보니까 아래와 같은게 있는데 왜 쓰는 건가요? cond1 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; 답변 부탁 드립니다.^^ input : len(3.2), len1(3.7); var : 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 = date == exitdate(1) and MarketPosition(1) == 1; cond2 = date == exitdate(1) and MarketPosition(1) == -1; if stime < 150000 then { if cond1 == False then{ if dayopen > var1 Then{ buy("매수1", atstop, dayopen+(var1-var2)*len1); } if dayopen < var2 Then{ buy("매수4", atstop, var2); } } if cond2 == False then{ if dayopen > var1 then{ sell("매도1",atstop, var1); } if dayopen <var2 Then{ sell("매도", atstop, dayopen-(var1-var2)*len1); } } } if MarketPosition <>0 Then { exitlong("매수청산", atstop, Highest(H,BarsSinceEntry)-atr(20)*len); exitshort("매도청산", atstop, Lowest(L,BarsSinceEntry)+atr(20)*len); } SetStopEndofday(150400);