커뮤니티
문의드립니다.
2019-05-02 14:11:57
274
글번호 128334
코딩 감사합니다. API 카페 같은데 돌아다니다보면 예스스탁님 아니었음 이거 할 수나 있었을까 하는 생각이 듭니다. 매번 감사합니다.
1. 이렇게 진입제한 해두어서 모든 신호로 해도 추가진입한 놈들까지 손절되면 더 이상 진입 안하는데요. 여기서 직전 포지션이 수익이면 직전 포지션 고가 돌파할 때 진입(b2)하고 또 bb식으로 수량 쌓아나가다 떨어지면 청산 이렇게 하려면 어떻게 바꾸어야 하나요?
그러니까 진입횟수를 2번으로 해놓으면 b의 신호를 계속 쌓다가 청산되서 수익이면 -> b신호때 고가 돌파했을 때 재진입하고 또 포지션 쌓다가 청산되면 멈춤하는 식입니다. 만약에 3번 해놓으면 2번째 b2신호가 이익이면 또 고가 돌파하면 진입 뭐 이런 식이요.
input: ATR기간(14),ATR곱셈(2),n(20);
var : 매수단위(0),투입금액(0),ATRV(0);
ATRV = atr(ATR기간);
매수단위 = 1;
input : entryCount(1);
var : count(0) ;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10 {
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
if Count < entryCount then {
if MarketPosition <= 0 and stime > 103000 then
buy("b",AtStop,dayopen + n * PriceScale, 매수단위);
}
if MarketPosition == 1 Then
{
buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위);
ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV );
}
2. 지금은 실험 안할거라 코드짜주실 필요는 없는데요. 피라미딩 추가진입도 횟수 제한 할 수 있나요? 대답만 해주시면 될 것 같습니다.
- 1. 128937_이미지_1.png (0.02 MB)
답변 1
예스스탁 예스스탁 답변
2019-05-02 14:43:04
안녕하세요
예스스탁입니다.
1
input: ATR기간(14),ATR곱셈(2),n(20),당일진입횟수(2);
var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0);
ATRV = atr(ATR기간);
매수단위 = 1;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10
{
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
#당일첫번째 진입(기존조건으로 진입)
if MarketPosition <= 0 and Count == 0 and stime > 103000 then
buy("b1",AtStop,dayopen + n * PriceScale, 매수단위);
#당일 두번째 진입부터 당일 N번째 진입까지
#직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입
if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수
and stime > 103000 and H < HH then
buy("b2",AtStop,H+ n * PriceScale, 매수단위);
if MarketPosition == 1 Then
{
//진입이후 최고가
HH = highest(H,BarsSinceEntry);
buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위);
ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV );
}
2
추가진입의 제어는 간단합니다.
함수 중에 MaxEntries를 사용하시면 됩니다.
MaxEntries가 현재 포지션의 최대누적진입횟수 입니다.
추가진입수식에 MaxEntries < 3 과 같은 조건을 주면
최대 3번(첫진입+추가진입+추가진입) 까지만 진입이 누적됩니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 코딩 감사합니다. API 카페 같은데 돌아다니다보면 예스스탁님 아니었음 이거 할 수나 있었을까 하는 생각이 듭니다. 매번 감사합니다.
1. 이렇게 진입제한 해두어서 모든 신호로 해도 추가진입한 놈들까지 손절되면 더 이상 진입 안하는데요. 여기서 직전 포지션이 수익이면 직전 포지션 고가 돌파할 때 진입(b2)하고 또 bb식으로 수량 쌓아나가다 떨어지면 청산 이렇게 하려면 어떻게 바꾸어야 하나요?
그러니까 진입횟수를 2번으로 해놓으면 b의 신호를 계속 쌓다가 청산되서 수익이면 -> b신호때 고가 돌파했을 때 재진입하고 또 포지션 쌓다가 청산되면 멈춤하는 식입니다. 만약에 3번 해놓으면 2번째 b2신호가 이익이면 또 고가 돌파하면 진입 뭐 이런 식이요.
input: ATR기간(14),ATR곱셈(2),n(20);
var : 매수단위(0),투입금액(0),ATRV(0);
ATRV = atr(ATR기간);
매수단위 = 1;
input : entryCount(1);
var : count(0) ;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10 {
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
if Count < entryCount then {
if MarketPosition <= 0 and stime > 103000 then
buy("b",AtStop,dayopen + n * PriceScale, 매수단위);
}
if MarketPosition == 1 Then
{
buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위);
ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV );
}
2. 지금은 실험 안할거라 코드짜주실 필요는 없는데요. 피라미딩 추가진입도 횟수 제한 할 수 있나요? 대답만 해주시면 될 것 같습니다.