커뮤니티

추가 문의드립니다.

프로필 이미지
맘속의행복
2017-11-23 15:55:58
190
글번호 114433
답변완료

첨부 이미지

안녕하세요. 55613번에서 답변해 주신 대로 수정하였더니 같은 캔들내에서 손절하고 다시 진입하는 현상은 없어졌습니다. 감사합니다. 그런데, 3개 캔들 이내에서(index < dni+3) 손절(SetStopLoss)이 발생한 후 그 다음 캔들에서 다시 진입을 하고 있는 것이 아직도 문제입니다. 같은 캔들내에서 진입을 안하지만, 다음 캔들에서...ㅜㅜ 첨부한 이미지 보시면 무려 3번 진입 손절을 반복합니다... 진입은 3개 캔들이내에서 무조건 1번만 일어나게 해야 될 거 같습니다. 부탁드리겠습니다. ---------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 기존수식에 entry변수가 매수에 진입하면 false로 변경되게 작성은 되어 있는데 매수진입식에는 조건으로 사용되지는 &#50527;아 추가했습니다. var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and entry == true and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요. 지난주에 문의드렸던 55559,55435번 관련해서 문의드립니다. 아래는 해당 수식입니다. ----------------------------------------------------------- var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); ------------------------------------------------------------------------ 진입 신호발생가 발생한 캔들 이후 3개 캔들 이내에서 목표가격에 도달하면 진입시키는 수식인데요. 문제는 3개 캔들이내에서는 포지션이 없는 경우 반복적으로 진입을 하기 때문에, 손절이 발생해도 다시 진입하여 또 손절처리되는 경우입니다. 자칫하면 대량 손실이(각 캔들마다 진입과 손절 하나씩..) 발생할 수 있어서 무조건 한번만 진입시키려고 합니다. 방법을 알려주시면 감사하겠습니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2017-11-24 10:44:06

안녕하세요 예스스탁입니다. 해당 내용은 지정하는 "진입조건" 내용이 중요합니다. 해당 조건이 만족하면 변수가 초기화되기 때문에 진입조건 자체가 구간이 아닌 한봉시점에만 만족하게 사용자분이 진입내용에 따라 코딩으로 해결하셔야 합니다. 만약, 진입조건이 ma(c,5) > ma(c,20)과 같이 구간단위로 만족하는 조건이면 해당 구간내에는 변수가 계속 초기화 되어 진입이 되므로 crossup(ma(c,5),ma(C,20))과 변경하여 여러봉에 걸쳐 만족하지 않게 지정하셔야 합니다. 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 추가 문의드립니다. > 안녕하세요. 55613번에서 답변해 주신 대로 수정하였더니 같은 캔들내에서 손절하고 다시 진입하는 현상은 없어졌습니다. 감사합니다. 그런데, 3개 캔들 이내에서(index < dni+3) 손절(SetStopLoss)이 발생한 후 그 다음 캔들에서 다시 진입을 하고 있는 것이 아직도 문제입니다. 같은 캔들내에서 진입을 안하지만, 다음 캔들에서...ㅜㅜ 첨부한 이미지 보시면 무려 3번 진입 손절을 반복합니다... 진입은 3개 캔들이내에서 무조건 1번만 일어나게 해야 될 거 같습니다. 부탁드리겠습니다. ---------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 기존수식에 entry변수가 매수에 진입하면 false로 변경되게 작성은 되어 있는데 매수진입식에는 조건으로 사용되지는 &#50527;아 추가했습니다. var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and entry == true and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요. 지난주에 문의드렸던 55559,55435번 관련해서 문의드립니다. 아래는 해당 수식입니다. ----------------------------------------------------------- var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); ------------------------------------------------------------------------ 진입 신호발생가 발생한 캔들 이후 3개 캔들 이내에서 목표가격에 도달하면 진입시키는 수식인데요. 문제는 3개 캔들이내에서는 포지션이 없는 경우 반복적으로 진입을 하기 때문에, 손절이 발생해도 다시 진입하여 또 손절처리되는 경우입니다. 자칫하면 대량 손실이(각 캔들마다 진입과 손절 하나씩..) 발생할 수 있어서 무조건 한번만 진입시키려고 합니다. 방법을 알려주시면 감사하겠습니다.
프로필 이미지

맘속의행복

2017-11-27 02:31:00

안녕하세요. 답변 감사드립니다. 답변해 주신 것을 참고로 진입조건을 "CrossUp" 을 사용하여 한봉에서만 이벤트가 발생하게 아래의 학습용 수식을 짜 보았습니다. var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and crossup(ma(c,5),ma(C,20)) then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and entry == true and index >= Dni and index < dni+3 then { Buy("매수", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.50, Pointstop); } -------------------------------------------------------------------------------------- 제가 구현하고자 하는 것은 진입조건 발생시 이후 3개 봉 범위 내에서 2틱 저렴하게 1번만 매수하는 것입니다. 다시 말해, 3개 봉 이내에서(dni+3), 진입가격(EP - PriceScale*3)에 도달하면 단 1번만 진입시키고 싶습니다. 현재는 매수포지션이 아닌경우 진입가격 충족시 계속해서 진입을 합니다, 즉 손절이 되면 곧바로 다시 매수를 하게 됩니다. 첨부한 이미지에서 보이다시피, 3개 봉에서 3번 진입하여 3번 손절이 발생하는 상황이 발생하기도 합니다. 1번만 진입하게 할 방법이 필요합니다. 꼭 좀 부탁드리겠습니다. 항상 감사합니다. * (첨부이미지 "1"은 본래 취지대로 성공한 경우, "2"는 대량 손실난 경우) > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 추가 문의드립니다. > 안녕하세요 예스스탁입니다. 해당 내용은 지정하는 "진입조건" 내용이 중요합니다. 해당 조건이 만족하면 변수가 초기화되기 때문에 진입조건 자체가 구간이 아닌 한봉시점에만 만족하게 사용자분이 진입내용에 따라 코딩으로 해결하셔야 합니다. 만약, 진입조건이 ma(c,5) > ma(c,20)과 같이 구간단위로 만족하는 조건이면 해당 구간내에는 변수가 계속 초기화 되어 진입이 되므로 crossup(ma(c,5),ma(C,20))과 변경하여 여러봉에 걸쳐 만족하지 않게 지정하셔야 합니다. 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 추가 문의드립니다. > 안녕하세요. 55613번에서 답변해 주신 대로 수정하였더니 같은 캔들내에서 손절하고 다시 진입하는 현상은 없어졌습니다. 감사합니다. 그런데, 3개 캔들 이내에서(index < dni+3) 손절(SetStopLoss)이 발생한 후 그 다음 캔들에서 다시 진입을 하고 있는 것이 아직도 문제입니다. 같은 캔들내에서 진입을 안하지만, 다음 캔들에서...ㅜㅜ 첨부한 이미지 보시면 무려 3번 진입 손절을 반복합니다... 진입은 3개 캔들이내에서 무조건 1번만 일어나게 해야 될 거 같습니다. 부탁드리겠습니다. ---------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 기존수식에 entry변수가 매수에 진입하면 false로 변경되게 작성은 되어 있는데 매수진입식에는 조건으로 사용되지는 앟아 추가했습니다. var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and entry == true and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요. 지난주에 문의드렸던 55559,55435번 관련해서 문의드립니다. 아래는 해당 수식입니다. ----------------------------------------------------------- var : dni(0),ep(0),entry(false); if MarketPosition <= 0 and 진입조건 then{ dni = index; EP = C; entry = true; } if MarketPosition == 1 Then entry = false; If MarketPosition <= 0 and index >= Dni and index < dni+3 then Buy("매수2", atlimit, EP - PriceScale*3); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.60, Pointstop); ------------------------------------------------------------------------ 진입 신호발생가 발생한 캔들 이후 3개 캔들 이내에서 목표가격에 도달하면 진입시키는 수식인데요. 문제는 3개 캔들이내에서는 포지션이 없는 경우 반복적으로 진입을 하기 때문에, 손절이 발생해도 다시 진입하여 또 손절처리되는 경우입니다. 자칫하면 대량 손실이(각 캔들마다 진입과 손절 하나씩..) 발생할 수 있어서 무조건 한번만 진입시키려고 합니다. 방법을 알려주시면 감사하겠습니다.