커뮤니티
문의드립니다
2015-11-02 23:01:24
189
글번호 91930
바쁘실거 같아 게시판 문의로 남깁니다
저번 문의에서 보충하여 재문의 드립니다
아래 시스템은
진입가격에서 1 2 3 % 상승시 30% 40% 전량익절
진입가격에서 1 2 3 % 하락시 30% 40% 전량손절
입니다
여기에 추가하여
진입가격대비 설정한 수익률이상(a 초기값 5%)이 나오면 다시
진입가격에서 6 7 8 % 상승시 30% 40% 전량익절
진입가격에서 5% 미만 상승시 전량 익절
의 조건을 추가하고 싶습니다
(편의상 첫 매도조건을 1차 매도조건
추가하고자 하는 조건을 2차 매도조건이라 하겠습니다)
(1차매도조건으로 매매하다가 설정한 수익률이상의 캔들이 발생하면
2차매도조건에 의한 매매
예를들어 진입가보다 5%이상 상승하면
2차매도조건으로 매도가 되고
진입가보다 1%상승하여 30% 매도가 된 이후 5%이상 상승하면
2차 매도조건인 7,8%에서 각각 매도가 되고
진입가보다 1,2% 상승하여 30 40 % 매도가 된 이후 5%이상 상승하면
2차 매도조건인 8%에서 전량매도가 되고
5%이상 상승이 일어났다가 다시 5%미만으로 상승이 둔화된경우
잔고수량 불문 나머지 전량 익절
5%이상의 상승이 일어났다 함은
진입가격에서 5%이상 상승이 일어나 진입가 대비 시가가
1차 매도조건의 상승폭을 상회함을 뜻합니다)
매번 감사합니다
가능한지 문의드리며
시간이 많이 걸린다면 가이드 라인이라도 알려주시면 감사드리겠습니다
input : 매수금액(1000000);
var : Evol(0),Xcnt(0);
if stime == 090000 and NextBarOpen <= C*1.00 and NextBarOpen >= C*1.00 Then{
buy("b",AtMarket,def,Floor(매수금액/C));
}
if MarketPosition == 1 Then{
if CurrentContracts < CurrentContracts[1] Then
Xcnt = Xcnt+1;
if Xcnt == 0 /*and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+30*/ Then
ExitLong("Bx11",atlimit,EntryPrice+(EntryPrice*0.01),"",floor(MaxContracts*0.4),1);
if Xcnt == 0 /* and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+5*/ Then
ExitLong("Bx12",AtStop,EntryPrice-(EntryPrice*0.01),"",floor(MaxContracts*0.4),1);
if Xcnt == 1 and CurrentContracts < MaxContracts Then{
ExitLong("Bx21",atlimit,LatestExitPrice(0)+(EntryPrice*0.01),"",floor(MaxContracts*0.3),1);
ExitLong("BL22",AtStop,LatestExitPrice(0)-(EntryPrice*0.01),"",floor(MaxContracts*0.3),1);
}
if Xcnt == 2 and CurrentContracts < MaxContracts Then{
ExitLong("Bx31",atlimit,LatestExitPrice(0)+(EntryPrice*0.01));
ExitLong("BL32",AtStop,LatestExitPrice(0)-(EntryPrice*0.01));
}
}
Else
Xcnt = 0;
답변 1
예스스탁 예스스탁 답변
2015-11-03 09:58:35
안녕하세요
예스스탁입니다.
아내 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
input : 매수금액(1000000);
input : Per(5);
var : OpenCond(false),Xcond1(false),Xcond2(false),Xcond3(false);
if stime == 090000 and NextBarOpen <= C*1.00 and NextBarOpen >= C*1.00 Then{
buy("b",AtMarket,def,Floor(매수금액/C));
}
if MarketPosition == 1 Then{
#봉완성시 다음봉 시가가 진입가 대비 5% 이상 상승하면 true
if NextBarOpen >= EntryPrice*(1+Per/100) Then
OpenCond = true;
#BP1 청산이 발생하면 Xcond1은 true
if LatestExitName(0) == "BP1" Then
Xcond1 = true;
#BP2 청산이 발생하면 Xcond2은 true
if LatestExitName(0) == "BP2" Then
Xcond2 = true;
#BP3 청산이 발생하면 Xcond3은 true
if LatestExitName(0) == "BP3" Then
Xcond3 = True;
#OpenCond가 false일때
if OpenCond == false Then{
if Xcond1 == false then
ExitLong("BP1",atlimit,EntryPrice(0)*1.01,"",Floor(MaxContracts*0.3),1);
if Xcond2 == false then
ExitLong("BP2",atlimit,EntryPrice(0)*1.02,"",Floor(MaxContracts*0.4),1);
if Xcond3 == false then
ExitLong("BP3",atlimit,EntryPrice(0)*1.03);
}
#OpenCond가 true일떄
if OpenCond == true Then{
#BP1로 청산이 안된 경우만 발생
if Xcond1 == false Then
ExitLong("BP6",atlimit,EntryPrice*(1+(Per+1)/100),"",Floor(MaxContracts*0.3),1);
#BP2로 청산이 안된 경우만 발생
if Xcond2 == false Then
ExitLong("BP7",atlimit,EntryPrice*(1+(Per+2)/100),"",Floor(MaxContracts*0.4),1);
#BP3로 청산이 안된 경우만 발생
if Xcond3 == false Then
ExitLong("BP8",atlimit,EntryPrice*(1+(Per+3)/100));
#5%이하로 가격하락하면 전량처산
exitlong("BP5",AtStop,EntryPrice*(1+Per/100));
}
}
#매수포지션이 아니면 모두 false로 초기화
if MarketPosition != 1 Then{
OpenCond = false;
Xcond1 = false;
Xcond2 = false;
Xcond3 = false;
}
즐거운 하루되세요
> 가이츠 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 바쁘실거 같아 게시판 문의로 남깁니다
저번 문의에서 보충하여 재문의 드립니다
아래 시스템은
진입가격에서 1 2 3 % 상승시 30% 40% 전량익절
진입가격에서 1 2 3 % 하락시 30% 40% 전량손절
입니다
여기에 추가하여
진입가격대비 설정한 수익률이상(a 초기값 5%)이 나오면 다시
진입가격에서 6 7 8 % 상승시 30% 40% 전량익절
진입가격에서 5% 미만 상승시 전량 익절
의 조건을 추가하고 싶습니다
(편의상 첫 매도조건을 1차 매도조건
추가하고자 하는 조건을 2차 매도조건이라 하겠습니다)
(1차매도조건으로 매매하다가 설정한 수익률이상의 캔들이 발생하면
2차매도조건에 의한 매매
예를들어 진입가보다 5%이상 상승하면
2차매도조건으로 매도가 되고
진입가보다 1%상승하여 30% 매도가 된 이후 5%이상 상승하면
2차 매도조건인 7,8%에서 각각 매도가 되고
진입가보다 1,2% 상승하여 30 40 % 매도가 된 이후 5%이상 상승하면
2차 매도조건인 8%에서 전량매도가 되고
5%이상 상승이 일어났다가 다시 5%미만으로 상승이 둔화된경우
잔고수량 불문 나머지 전량 익절
5%이상의 상승이 일어났다 함은
진입가격에서 5%이상 상승이 일어나 진입가 대비 시가가
1차 매도조건의 상승폭을 상회함을 뜻합니다)
매번 감사합니다
가능한지 문의드리며
시간이 많이 걸린다면 가이드 라인이라도 알려주시면 감사드리겠습니다
input : 매수금액(1000000);
var : Evol(0),Xcnt(0);
if stime == 090000 and NextBarOpen <= C*1.00 and NextBarOpen >= C*1.00 Then{
buy("b",AtMarket,def,Floor(매수금액/C));
}
if MarketPosition == 1 Then{
if CurrentContracts < CurrentContracts[1] Then
Xcnt = Xcnt+1;
if Xcnt == 0 /*and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+30*/ Then
ExitLong("Bx11",atlimit,EntryPrice+(EntryPrice*0.01),"",floor(MaxContracts*0.4),1);
if Xcnt == 0 /* and TimeToMinutes(stime) >= TimeToMinutes(EntryTime)+5*/ Then
ExitLong("Bx12",AtStop,EntryPrice-(EntryPrice*0.01),"",floor(MaxContracts*0.4),1);
if Xcnt == 1 and CurrentContracts < MaxContracts Then{
ExitLong("Bx21",atlimit,LatestExitPrice(0)+(EntryPrice*0.01),"",floor(MaxContracts*0.3),1);
ExitLong("BL22",AtStop,LatestExitPrice(0)-(EntryPrice*0.01),"",floor(MaxContracts*0.3),1);
}
if Xcnt == 2 and CurrentContracts < MaxContracts Then{
ExitLong("Bx31",atlimit,LatestExitPrice(0)+(EntryPrice*0.01));
ExitLong("BL32",AtStop,LatestExitPrice(0)-(EntryPrice*0.01));
}
}
Else
Xcnt = 0;