커뮤니티
수식부탁드립니다.
2014-09-28 21:46:13
161
글번호 78886
안녕하세요.
항상 도움 주셔서 감사합니다.
첨부파일 보시고 답변 부탁드립니다.
- 1. 문의드립니다.xlsx (0.01 MB)
답변 1
예스스탁 예스스탁 답변
2014-09-29 14:41:05
안녕하세요
예스스탁입니다.
1.
if stime >= 150000 or stime < 060000 Then{
if 매수조건 Then
buy();
if 매도조건 Then
sell();
}
2.3
SetStopLoss
SetStopEndofday
위 함수는 강제청산설정을 셋팅하는 함수입니다.
if문을 주시면 차트상 처음 if문이 만족한 시점이후로
해당 설정이 모든 거래에 계속 적용이 되게 됩니다.
비슷한 예로 아래와 같은 지표식 작성하시면
차트상 처음 종가가 20이평을 상향돌파한 이후에는 계속 var1값은 1입니다.
if crossup(c,ma(C,20)) then
var1 = 1;
plot1(var1);
매수만 강제청산을 설정하고자 하시면 아래와 같이 매수포지션이 아닐때는
해제해 주는 내용을 추가해 주셔야 합니다.
강제청산함수에 매개변수로 0을 주시면 설정해제가 됩니다.
if MarketPosition == 1 Then
SetStopLoss(PriceScale*4,PointStop);
Else
SetStopLoss(0);#해제
또하나는 당일청산의 경우에는
당일청산(SetStopEndofday)는 지정한 시간이후로 0시까지는
진입을 하지 못하게 제한하는 기능이 있습니다.
해외선물의 경우에는 보통 새벽에 당일청산을 하는 경우가 많으므로
해당 설정을 사용하지 않습니다.
즉 24시간을 염두에 두는 종목에는 당일청산이라는 개념이 없고
단지 시간청산만 있습니다.
그러므로 오후 15시에서 다음날 새벽 6시까지 거래를 하고 6시에 당일청산을 한다면
아래와 같이 if문으로 시간지정하셔서 청산식 만드셔야 합니다.
if stime >= 150000 or stime < 060000 Then{
if 매수조건 Then
buy();
if 매도조건 Then
sell();
}
if stime == 060000 or (stime > 060000 and stime[1] < 060000) then{
exitlong();
exitshort();
}
만약 SetStopEndofday(060000);과 같이 당일청산함수 사용하시면
그날의 밤 0시까지 진입을 하지 못하므로 15시 이후의 진입이 의미가 없어집니다.
4.
Condition1 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true;
는 최근 청산날짜가 오늘이고 청산이 setstoploss이었다라는 내용입니다.
즉 당일 손절매가 한번 발생하면 condition1은 true이고
당일 손절매가 한번도 발생하지 않았으면 false입니다.
당일 손절매가 한번이상 발생하면 더이상 진입하지 않을때 사용됩니다.
해외선물에서는 이부분도 다르게 처리하셔야 합니다.
위 내용은 국내선물(0시를 기준으로 하루를 구분하는 경우) 에서 사용되는 내용이고 해외선물이고
사용자분이 진입시간이 다르므로 15시를 기준으로 판단하시면 아래와 같이 작성하셔야 합니다.
if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then
Condition1 = false;
if stime >= 150000 or stime < 060000 Then{
if BarsSinceEntry(1) == 1 and IsExitName("StopLoss",1) == true Then
Condition1 = true;
}
if stime >= 150000 or stime < 060000 Then{
if Condition1 == false and 매수조건 Then
buy();
if Condition1 == false and 매도조건 Then
sell();
}
if MarketPosition == 1 Then
SetStopLoss(PriceScale*4,PointStop);
Else
SetStopLoss(0);
5.
봉완성시 종가기준이면 아래와 같이 작성하시면 됩니다.
if MarketPosition == 1 and c < entryprice-3 then
exitlong("exit")
3포인트 손실시 즉시 청산하신다면
아래와 같이 작성하시면 됩니다.
if MarketPosition == 1 then
exitlong("exit",AtStop,EntryPrice-3)
6.
과거 월물을 따로 제공하지 않습니다.
7.
해당식은 기본골격이 트릭스가 시그널을 상향돌파하면매수, 하향이탈하면 매도입니다.
진입식의 MarketPosition == 0과 반대시그널시 청산이 불필요 합니다.
buy와 sell은 반대포지션 상태에서 발생하면 반대포지션 청산을 자동으로 합니다.
Input : Period(12), sigPeriod(9),vol(1);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
if sTime >= 150000 or stime < 050000 Then { # 매매시간 시작
If crossup(value1,value2) Then
Buy("B1",OnClose,def,vol);
If crossdown(value1, value2) then
sell("S1",OnClose,def,vol);
}
if MarketPosition == 1 Then
SetStopLoss(PriceScale*4,PointStop);
Else
SetStopLoss(0);
if stime == 050000 or (stime > 050000 and stime[1] < 050000) Then{
ExitLong();
ExitShort();
}
8.
질문의 내용을 게시판에 직접 올려주시기 바랍니다.
게시판은 사용자분들이 서로 질문과 답변을 보시고 수식작성에 도움을 받는 공간입니다.
질문을 엑셀파일로 올리시면 다른분들이 검색해서 보시기 어렵습니다.
양해 부탁드립니다.
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다.
> 안녕하세요.
항상 도움 주셔서 감사합니다.
첨부파일 보시고 답변 부탁드립니다.
다음글