예스스탁
예스스탁 답변
2023-04-27 11:27:04
안녕하세요
예스스탁입니다.
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
var : d1(0);
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
d1 = Bdate;
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1]);
}
if stime >= 151000 and sTime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1, Floor((ex_money * cut_ratio)/ c) );
if stime == 153000 and Bdate > d1 and sTime == 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose,Floor((ex_money * cut_ratio)/ c));
}
Else
d1 = 0;
즐거운 하루되세요
> 루라라라 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 제가 하니 도저히 계속 의도한대로 안되서 다시 도움을 청합니다 ㅠㅠ
Data1 : 분봉차트
Data2 : 일봉차트
제가 의도한 매수식은 아래와 같습니다
<첫진입>
1분봉 차트에서,
15시10분 이후로 장 마감때까지, '일봉 상 20일간 최고가(종가기준)'보다 현재가가 상승하면 즉시 매수
<피라미딩>
1분봉 차트에서,
1번 : 15시10분 이후로 장 마감때까지, 이전 진입 가격보다 10%이상 상승하면 즉시 매수
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
2번 : 장 마감했을때 마지막 분봉(15시31분봉)의 종가(그날의 종가)가,
이전 진입 가격보다 10%이상 상승한 상태면, 당일에 15시31분봉에 매수 예비신호 표시
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
(15시31분봉에 예비신호 표시 위해 onclose 사용함)
아래는 그동안 도움주신 내용들로 제가 모아서 정리한것인데,
아래의 식을 합치니 피라미딩부분이 제대로 돌아가지가 않습니다 ㅠ
------------------------------
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1])
이전진입금액 = 이전 진입 가격 * 이전 진입 수량
매회 피라미딩시의 수량 = Floor((ex_money * cut_ratio)/ c)
매회 피라미딩시의 수량 = 이전진입금액 * 0.9 / 종가
위의 '이전진입금액'과, '피라미딩시의 수량'을 제가 위 첫진입과, 아래 피라미딩1번,피라미딩2번 식에 합치니, 피라미딩이 아예 안되거나 당최 계속 이상하게 나타납니다 ㅠ
if MarketPosition == 1 Then
{
if sTime >= 151000 and NextBarSdate == sDate Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1);
if stime >= 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose);
}
작성 좀 부탁드리겠습니다.
아무리 뜯어봐도 어디서 구멍이 났는지 모르겠네요 ㅠ
매번 감사드립니다
두가지 오류?가 있어서 다시 한번 여쭙니다 ㅠㅠ
보내주신 식을 복사 붙여넣기 하고,
다른 것은 그대로 둔 상태로
LatestEntryPrice(0)*1.1 -> LatestEntryPrice(0)*1.18 배수로 바꾸기만 하고
성우하이텍 1분봉-일봉 차트에 적용한 상태가 1번 캡쳐입니다
23년4월12일 15시 31분에 피라미딩이 정상적으로 이루어졌습니다.
이전 진입가 8510원의 1.18배인 10041원을, 15시10분부터 쭉 넘지 못하다가 종가에 딱 넘어서서 10060원에 딱 마감되었습니다
근데 신호는 피라미딩1번이라고 표시가 됩니다
(15시 31분봉이므로 2번이라고 표시가 되야합니다)
-----------------------------------------------------
보내주신 식을 복사 붙여넣기 하고,
다른 것은 그대로 둔 상태로
1. LatestEntryPrice(0)*1.1 -> LatestEntryPrice(0)*1.18 배수로 바꾸고
2. if stime >= 151000 and sTime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.18, Floor((ex_money * cut_ratio)/ c) );
에서, sTime < 153000 을 sTime < 151900 로 변경해보았습니다(그게 두번째 캡쳐입니다)
(이렇게 변경한 이유는, 왜 피라미딩2가 아니라 1로 나오는지 알아내기 위해서 조정을 해보다가 변경을 해보았습니다)
그러자,
23년4월12일 15시 31분에 피라미딩이 정상적으로 이루어지고
두번째 캡쳐에서 보시다시피 '피라미딩2번'이라고 정상적으로 나옵니다
근데 수량이 갑자기 1개가 되었습니다 (1번 캡쳐에서 처럼 수량이 80개가 나와야 합니다)
(이전에 답글 남겨주신곳에 캡쳐해주신 그림에도, 수량이 1개라고 되어있습니다)
이게 왜 이런지 이해가 안되서 한번 더 질문글을 남깁니다 ㅠ
혹시 제 예트에서 서버에서 받는 일봉 데이터에 문제가 있는건지..
껐다 켜도 동일한 결과라 아닌 것 같긴 한데 ㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
var : d1(0);
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
d1 = Bdate;
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1]);
}
if stime >= 151000 and sTime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1, Floor((ex_money * cut_ratio)/ c) );
if stime == 153000 and Bdate > d1 and sTime == 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose,Floor((ex_money * cut_ratio)/ c));
}
Else
d1 = 0;
즐거운 하루되세요
> 루라라라 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 제가 하니 도저히 계속 의도한대로 안되서 다시 도움을 청합니다 ㅠㅠ
Data1 : 분봉차트
Data2 : 일봉차트
제가 의도한 매수식은 아래와 같습니다
<첫진입>
1분봉 차트에서,
15시10분 이후로 장 마감때까지, '일봉 상 20일간 최고가(종가기준)'보다 현재가가 상승하면 즉시 매수
<피라미딩>
1분봉 차트에서,
1번 : 15시10분 이후로 장 마감때까지, 이전 진입 가격보다 10%이상 상승하면 즉시 매수
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
2번 : 장 마감했을때 마지막 분봉(15시31분봉)의 종가(그날의 종가)가,
이전 진입 가격보다 10%이상 상승한 상태면, 당일에 15시31분봉에 매수 예비신호 표시
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
(15시31분봉에 예비신호 표시 위해 onclose 사용함)
아래는 그동안 도움주신 내용들로 제가 모아서 정리한것인데,
아래의 식을 합치니 피라미딩부분이 제대로 돌아가지가 않습니다 ㅠ
------------------------------
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1])
이전진입금액 = 이전 진입 가격 * 이전 진입 수량
매회 피라미딩시의 수량 = Floor((ex_money * cut_ratio)/ c)
매회 피라미딩시의 수량 = 이전진입금액 * 0.9 / 종가
위의 '이전진입금액'과, '피라미딩시의 수량'을 제가 위 첫진입과, 아래 피라미딩1번,피라미딩2번 식에 합치니, 피라미딩이 아예 안되거나 당최 계속 이상하게 나타납니다 ㅠ
if MarketPosition == 1 Then
{
if sTime >= 151000 and NextBarSdate == sDate Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1);
if stime >= 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose);
}
작성 좀 부탁드리겠습니다.
아무리 뜯어봐도 어디서 구멍이 났는지 모르겠네요 ㅠ
매번 감사드립니다
예스스탁
예스스탁 답변
2023-04-27 17:38:36
안녕하세요
예스스탁입니다.
수정한 식입니다
피라미딩2번 진입에 매개변수가 빠진부분이 있었습니다.
1번과 2번이 마지막봉에 같이 발생할수 있어
1번 신호시간을 마지막봉에서 발생하지 않게 제한했습니다.
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
var : d1(0);
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
d1 = Bdate;
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1]);
}
if stime >= 151000 and NextBarStime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.18, Floor((ex_money * cut_ratio)/ c) );
if stime == 153000 and Bdate > d1 and sTime == 153000 and C > LatestEntryPrice(0)*1.18 Then
{
Buy("피라미딩2번", OnClose,def,Floor((ex_money * cut_ratio)/ c));
}
}
Else
d1 = 0;
즐거운 하루되세요
> 루라라라 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다
> 두가지 오류?가 있어서 다시 한번 여쭙니다 ㅠㅠ
보내주신 식을 복사 붙여넣기 하고,
다른 것은 그대로 둔 상태로
LatestEntryPrice(0)*1.1 -> LatestEntryPrice(0)*1.18 배수로 바꾸기만 하고
성우하이텍 1분봉-일봉 차트에 적용한 상태가 1번 캡쳐입니다
23년4월12일 15시 31분에 피라미딩이 정상적으로 이루어졌습니다.
이전 진입가 8510원의 1.18배인 10041원을, 15시10분부터 쭉 넘지 못하다가 종가에 딱 넘어서서 10060원에 딱 마감되었습니다
근데 신호는 피라미딩1번이라고 표시가 됩니다
(15시 31분봉이므로 2번이라고 표시가 되야합니다)
-----------------------------------------------------
보내주신 식을 복사 붙여넣기 하고,
다른 것은 그대로 둔 상태로
1. LatestEntryPrice(0)*1.1 -> LatestEntryPrice(0)*1.18 배수로 바꾸고
2. if stime >= 151000 and sTime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.18, Floor((ex_money * cut_ratio)/ c) );
에서, sTime < 153000 을 sTime < 151900 로 변경해보았습니다(그게 두번째 캡쳐입니다)
(이렇게 변경한 이유는, 왜 피라미딩2가 아니라 1로 나오는지 알아내기 위해서 조정을 해보다가 변경을 해보았습니다)
그러자,
23년4월12일 15시 31분에 피라미딩이 정상적으로 이루어지고
두번째 캡쳐에서 보시다시피 '피라미딩2번'이라고 정상적으로 나옵니다
근데 수량이 갑자기 1개가 되었습니다 (1번 캡쳐에서 처럼 수량이 80개가 나와야 합니다)
(이전에 답글 남겨주신곳에 캡쳐해주신 그림에도, 수량이 1개라고 되어있습니다)
이게 왜 이런지 이해가 안되서 한번 더 질문글을 남깁니다 ㅠ
혹시 제 예트에서 서버에서 받는 일봉 데이터에 문제가 있는건지..
껐다 켜도 동일한 결과라 아닌 것 같긴 한데 ㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
var : d1(0);
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
d1 = Bdate;
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1]);
}
if stime >= 151000 and sTime < 153000 and Bdate > d1 Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1, Floor((ex_money * cut_ratio)/ c) );
if stime == 153000 and Bdate > d1 and sTime == 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose,Floor((ex_money * cut_ratio)/ c));
}
Else
d1 = 0;
즐거운 하루되세요
> 루라라라 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 제가 하니 도저히 계속 의도한대로 안되서 다시 도움을 청합니다 ㅠㅠ
Data1 : 분봉차트
Data2 : 일봉차트
제가 의도한 매수식은 아래와 같습니다
<첫진입>
1분봉 차트에서,
15시10분 이후로 장 마감때까지, '일봉 상 20일간 최고가(종가기준)'보다 현재가가 상승하면 즉시 매수
<피라미딩>
1분봉 차트에서,
1번 : 15시10분 이후로 장 마감때까지, 이전 진입 가격보다 10%이상 상승하면 즉시 매수
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
2번 : 장 마감했을때 마지막 분봉(15시31분봉)의 종가(그날의 종가)가,
이전 진입 가격보다 10%이상 상승한 상태면, 당일에 15시31분봉에 매수 예비신호 표시
(이때 진입수량 = 이전 진입 금액*0.9 / 종가)
(15시31분봉에 예비신호 표시 위해 onclose 사용함)
아래는 그동안 도움주신 내용들로 제가 모아서 정리한것인데,
아래의 식을 합치니 피라미딩부분이 제대로 돌아가지가 않습니다 ㅠ
------------------------------
input :
invest_money(1000000), //첫 진입 금액
cut_ratio(0.9); // 매 진입시마다, 이전 진입 금액의 90%만 진입하기 위함
var : ex_money(0); //이전 진입금액
if MarketPosition == 0 then
{
if sTime >= 151000 and NextBarSdate == sDate Then
{
Buy("첫진입",AtStop,Data2(highest(c,20)), Floor(invest_money/C) );
}
}
ex_money = LatestEntryPrice(0)*(CurrentContracts-CurrentContracts[1])
이전진입금액 = 이전 진입 가격 * 이전 진입 수량
매회 피라미딩시의 수량 = Floor((ex_money * cut_ratio)/ c)
매회 피라미딩시의 수량 = 이전진입금액 * 0.9 / 종가
위의 '이전진입금액'과, '피라미딩시의 수량'을 제가 위 첫진입과, 아래 피라미딩1번,피라미딩2번 식에 합치니, 피라미딩이 아예 안되거나 당최 계속 이상하게 나타납니다 ㅠ
if MarketPosition == 1 Then
{
if sTime >= 151000 and NextBarSdate == sDate Then
Buy("피라미딩1번", AtStop,LatestEntryPrice(0)*1.1);
if stime >= 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose);
}
작성 좀 부탁드리겠습니다.
아무리 뜯어봐도 어디서 구멍이 났는지 모르겠네요 ㅠ
매번 감사드립니다