예스스탁
예스스탁 답변
2020-04-03 21:02:34
안녕하세요
예스스탁입니다.
식 수정해 드립니다.
66804문의 아래에 이전에 3개식에 대한 진입횟수 처리한 식을 답변드렸습니다.
참고하시기 바랍니다.
input : 매수전봉양봉틱수(5),매수현재양봉틱수(5);
input : 매도전봉음봉틱수(5),매도현재음봉틱수(5);
input : 진입횟수(5);
input : 익절틱수(50),손절틱수(4);
input : P1(5),P2(20);
var : entry(0),mav1(0),mav2(0),T1(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if bdate != bdate[1] Then
{
entry = 0;
}
#현재봉이 무포지션이 아니고 전봉과 현재봉의 포지션이 다를때
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) then
entry = entry +1;
#현재봉과 전봉의 포지션은 같은데 총거래횟수가 증가했을때(봉하나에서 진입청산이 모두 발생)
if (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry +1;
if mav1 > mav2 and #정배열
entry < 진입횟수 and #진입횟수가 지정한 값 이하
bdate == bdate[1] and
MarketPosition == 0 and #매수나 무포지션 상태
C[1] == O[1]-매도전봉음봉틱수*PriceScale and
C[0] == O[0]-매도현재음봉틱수*PriceScale Then
{
sell("s");
if entry < 진입횟수-1 then
buy("bs1",AtStop,C+PriceScale*4);
Else
ExitShort("sx1",AtStop,C+PriceScale*4);
}
if mav1 < mav2 and #역배열
entry < 진입횟수 and #진입횟수가 지정한 값 이하
bdate == bdate[1] and
MarketPosition == 0 and #매도나 무포지션 상태
C[1] == O[1]+매수전봉양봉틱수*PriceScale and
C[0] == O[0]+매수현재양봉틱수*PriceScale Then
{
buy("b");
if entry < 진입횟수-1 Then
sell("sb1",AtStop,C-PriceScale*4);
Else
ExitShort("bx1",AtStop,C-PriceScale*4);
}
#매수진입 후 손절되면 매도로 스위칭
if MarketPosition == 1 Then
{
if entry < 진입횟수 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
Else
ExitLong("bsx",AtStop,EntryPrice-PriceScale*손절틱수);
}
#매도진입 후 손절되면 매수로 스위칭
if MarketPosition == -1 Then
{
if entry < 진입횟수 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
Else
ExitShort("sbx",AtStop,EntryPrice+PriceScale*손절틱수);
}
#목표수익 설정
SetStopProfittarget(PriceScale*익절틱수,PointStop);
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다.
> 안녕하세요?
손절이 범위를 벗어나지않게 되도록 수정부탁드립니다.
금일 거래된차트와 변수 첨부하였으니 참조해주시고, 익절은 잘 되고있는 상태입니다.
감사합니다.
input : 매수전봉양봉틱수(5),매수현재양봉틱수(5);
input : 매도전봉음봉틱수(5),매도현재음봉틱수(5);
input : 진입횟수(5);
input : 익절틱수(50),손절틱수(4);
input : P1(5),P2(20);
var : entry(0),mav1(0),mav2(0),T1(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
#영업일 변경
if bdate != bdate[1] Then
{
T1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
if mav1 > mav2 and #정배열
entry < 진입횟수 and #진입횟수가 지정한 값 이하
bdate == bdate[1] and
MarketPosition == 0 and #매수나 무포지션 상태
C[1] == O[1]-매도전봉음봉틱수*PriceScale and
C[0] == O[0]-매도현재음봉틱수*PriceScale Then
{
sell("s");
if entry < 진입횟수-1 then
buy("bs1",AtStop,C+PriceScale*4);
Else
ExitShort("sx1",AtStop,C+PriceScale*4);
}
if mav1 < mav2 and #역배열
entry < 진입횟수 and #진입횟수가 지정한 값 이하
bdate == bdate[1] and
MarketPosition == 0 and #매도나 무포지션 상태
C[1] == O[1]+매수전봉양봉틱수*PriceScale and
C[0] == O[0]+매수현재양봉틱수*PriceScale Then
{
buy("b");
if entry < 진입횟수-1 Then
sell("sb1",AtStop,C-PriceScale*4);
Else
ExitShort("bx1",AtStop,C-PriceScale*4);
}
#매수진입 후 손절되면 매도로 스위칭
if MarketPosition == 1 Then
{
if entry < 진입횟수 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
Else
ExitLong("bsx",AtStop,EntryPrice-PriceScale*손절틱수);
}
#매도진입 후 손절되면 매수로 스위칭
if MarketPosition == -1 and entry < 진입횟수 Then
{
if entry < 진입횟수 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
Else
ExitShort("sbx",AtStop,EntryPrice+PriceScale*손절틱수);
}
#목표수익 설정
SetStopProfittarget(PriceScale*익절틱수,PointStop);