예스스탁
예스스탁 답변
2020-02-06 14:34:21
안녕하세요
예스스탁입니다.
1
식을 수정했습니다.
랭구지는 실제 주문에서 미체결이나 주문거부등은 수식안에서 알수 없습니다.
차트에 신호가 발생하면 주문만 발생합니다.
2
자동매매시에 시스템 트레이딩 설정창의 매매탭에서
주문시작신호에 설정에 유의하시기 바랍니다.
주문시작신호가 진입신호로 설정된 상태에서
차트에 진입신호가 발생되어 있는 상태에서 설정창을 열고 다시 확인버튼 클릭하면
주문이 다시 진입부터 나가게 되어 청산신호가 신호만 표시되고 주문이 되지 않습니다.
차트에서 신호가 6번 발생했는데 실제 주문은 그 이하라면
주문이 증권사 원장에서 증거금 부족등의 이유로 거부가 되었거나
위 상황때문에 주문이 되지 않아 발생하는 내용입니다.
3
기본식에 손절시 반대포지션으로 스위칭이 있습니다.
진입횟수가 지정한 횟수를 달성하면 이후에는 손절청산만 하게 변경해 드립니다.
4
사용하시는 주기가 작아 진입과 같이 손절을 셋팅해 다음봉을 보는 부분은 불필요하고
진입횟수가 1일때 제어가 되지 않아 삭제했습니다.
5
input :양봉틱수(5),음봉틱수(5),익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if bdate != bdate[1] Then
{
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if MarketPosition == 0 and C == O+양봉틱수*PriceScale and entry < 진입횟수 Then
{
buy("b");
}
if MarketPosition == 0 and C == O-음봉틱수*PriceScale and entry < 진입횟수 Then
{
sell("s");
}
if MarketPosition == 1 and entry < 진입횟수 Then
{
if entry < 진입횟수 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
Else
ExitLong("bx",AtStop,EntryPrice-PriceScale*손절틱수);
}
if MarketPosition == -1 and entry < 진입횟수 Then
{
if entry < 진입횟수 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
Else
ExitShort("sx",AtStop,EntryPrice+PriceScale*손절틱수);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> 안녕하세요?
금일 실전거래를 해봤는데, 아래와같은 문제점이 있습니다.
체결내역과 성능보고서가 다릅니다. 성능보고서는 첫번째매매 익절 두번째매매 손절, 3번째매매 손절이고 체결내역은 현시간(1:50)까지도 포지션보유중입니다. (당일강제청산설정 오전11:20으로 되있습니다)
---> 지금다시보니 11시20분에 주문이나가서 미체결 되어서 11시20분에는 청산이 안되었네요. 이부분은 문제가없습니다.
신호차트도 첨부하였사오니, 진단후 수정부탁드립니다.
감사합니다.
1. 일일매매횟수 1회로 설정해놓았는데, 계속 매매가됩니다.
2. 현재까지 거래된내역을 보면 매수를 처음하였는데, 청산하기전에 추가매수가 들어갔습니다.
3. 익절/손절 지정범위를 모두 1포인트씩(지정범위) 해놓았는데, 현재 손절범위를 훨씬 넘어서서 포지션을 보유하고있습니다.
<의도한 내용>
***진입 --> 양봉과 음봉의 몸통길이 각각 외부변수
양봉에 매수 (몸통길이 외부변수)틱
음봉에 매도 (몸통길이 외부변수)틱
***청산
익절 (외부변수)틱
손절 (외부변수)틱
***재진입
하루 매매횟수 외부변수
익절 후 다음신호 발생시 진입
손절 후 손절과 동시에 반대방향 포지션 진입
<수식>
input :양봉틱수(5),음봉틱수(5),익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if bdate != bdate[1] Then
{
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if MarketPosition == 0 and C == O+양봉틱수*PriceScale and entry < 진입횟수 Then
{
buy("b");
sell("bs1",AtStop,c-PriceScale*손절틱수);
}
if MarketPosition == 0 and C == O-음봉틱수*PriceScale and entry < 진입횟수 Then
{
sell("s");
buy("sb1",AtStop,c+PriceScale*손절틱수);
}
if MarketPosition == 1 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
if MarketPosition == 1 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
SetStopProfittarget(PriceScale*익절틱수,PointStop);