예스스탁
예스스탁 답변
2021-04-15 11:21:17
안녕하세요
예스스탁입니다.
1
작성해 드린 수식이 지정한 포인트변동으로 진입청산이 되는 수식입니다.
다만 수식 신호체계상 하나의 신호는 한봉에 한번만 발생하게 되며
최근 진입가격이나 청산가격은 봉완성시에만 저장해 사용할 수 있고(봉미완성시에 발생하는 신호가격을 알수없습니다)
봉미완성시에 신호가 발생하는 타입들은
봉완성시에 가격을 셋팅하고 다음봉에서 해당 가격 이상이나 이하의 시세가 발생하면
신호가 발생하게 되는 구조입니다.
봉미완성시에 발생되는 진입과 청산격격을 추적해서 신호를 발생하게 작성이 불가능합니다.
해당식으로 최대한 짧은 주기의 차트에 적용하시는 방법뿐이 없습니다.
2
수식에 포인트가 0.001로 되어 있어 0.0001로 변경해 드립니다.
외부변수로 변경가능하게 수정해 드립니다.
input : 최초진입(1),pt(0.0010);
var : LP(0);
if sDate != sDate[1] Then
SetStopEndofday(55500);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
LP = 0;
if 최초진입 == 1 Then
Buy("b1",AtMarket,DEF,1);
if 최초진입 == -1 Then
Sell("s1",AtMarket,DEF,1);
}
Else
{
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Buy("bb",AtStop,LP+pt,1);
ExitLong("bx",AtStop,LP-pt,"",1,1);
}
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Sell("ss",AtStop,LP-pt,1);
ExitShort("sx",AtStop,LP+pt,"",1,1);
}
if MarketPosition == 0 and LP > 0 Then
{
Buy("b",AtStop,ExitPrice(1)+pt,1);
Sell("s",AtStop,ExitPrice(1)-pt,1);
}
}
즐거운 하루되세요
> 바다가좋아 님이 쓴 글입니다.
> 제목 : 수식 수정 요청부탁드립니다.
> 안녕하세요. 어제 작성해주신 수식으로 시뮬레이션을 해봤는데 약간 제 생각과
다르게 되는것 같아서 수정 좀 부탁드립니다.
제가 원하는 것은 0.77260에 1계약 매수 들어가면 피라미딩식으로 0.77270에 매수가 되고,
또 0.77280에 매수가 되고 그 다음에 흐름이 바뀌어 0.77270이 되었을 때는 직전에 매수했던
1계약이 매수 청산 된 후에 다시 0.77280이 되면 다시 매수가 진행되는 시스템을 원하거든요.
근데 아래 식으로는 거래내역을 보니 좀 다르게 진행이 되는것 같더라구요.
요약하자면 추세를 따라가면서 1계약씩 늘려가다가 되돌림이 되면 1계약씩 줄여나가고, 최초
매수했던 수량까지 다 손절이 되면, 그 다음부터는 매도로 신규진입되면서 1계약씩 피라미딩
진행되는것을 원합니다.
장대양봉이나, 장대음봉이 나왔을 경우 수익을 극대화하고자 하는 방법을 원하거든요.
보시고, 수정 좀 부탁드립니다.
===============================================================
input : 최초진입(1);
var : LP(0);
if sDate != sDate[1] Then
SetStopEndofday(55500);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
LP = 0;
if 최초진입 == 1 Then
Buy("b1",AtMarket,DEF,1);
if 최초진입 == -1 Then
Sell("s1",AtMarket,DEF,1);
}
Else
{
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Buy("bb",AtStop,LP+0.001,1);
ExitLong("bx",AtStop,LP-0.001,"",1,1);
}
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
LP = LatestEntryPrice(0);
if CurrentContracts < CurrentContracts[1] Then
LP = LatestExitPrice(0);
Sell("ss",AtStop,LP-0.001,1);
ExitShort("sx",AtStop,LP+0.001,"",1,1);
}
if MarketPosition == 0 and LP > 0 Then
{
Buy("b",AtStop,ExitPrice(1)+0.001,1);
Sell("s",AtStop,ExitPrice(1)-0.001,1);
}
}
즐거운 하루되세요
> 바다가좋아 님이 쓴 글입니다.
> 제목 : 수식 추가 수정 요청부탁드립니다.
> 안녕하세요. 어제 전량 청산 조건으로 수식 작성 부탁드렸는데 하나씩 청산하는
전략으로도 시뮬레이션을 해보고 싶어서요.
< 요청 사항 >
1. 피라미딩으로 수량 증가하면서 늘려가다가 그 반대방향으로 진행시에는 그 방향으로
하나씩 청산(손절) 되면서, 다 청산 되면 신규 매수 or 매도 진입이 되는 방식으로
만들었으면 합니다. 흐름을 따라가면서 계약수를 하나씩 증가시키거나, 감소시키고자
합니다.
2. 매매종목 : 해외선물(Australian Dollar) (5분봉 기준)
3. 매매 예시
1) 최초 시장가 1계약 매수 or 매도
2) 매수 or 매도와 동시에 손절(+- 0.001pt)만 설정
3) 최초 매수 or 매도한 가격 기준으로 수익 진행시 +0.001포인트마다 1계약씩
추가 매수 or 매도
ex) AUD 기준 0.76545 1계약 매수 -> 0.76645 추가 1계약 매수 ->
0.76745 추가 1계약 매수 -> 0.76845 추가 1계약 매수 -> 이후 가격이 0.76745로
되돌림 되었을 때는 먼저 0.76845에서 매수했던 1계약만 매수 청산(손절) ->
0.76745 에서 1계약 매수청산(손절) -> 0.76645 1계약 매수 청산(손절)
-> 0.76545 1계약 매수청산(손절) -> 이후 가격이 0.76445까지 내려가면 0.76445
1계약 매도 진입 -> 0.76345 1계약 매도 -> 0.76245 추가 1계약 매도 -> (반복)
4) 각 추가매수 or 추가매도한 계약별로 진입할 때마다 손절(-0.001포인트) 설정
5) 청산은 장 종료시에 시장가로 일괄 청산 설정(익일 05:55분)
6) 아~ 그리고 처음에 매수로 진행하지 않고, 시장 상태에 따라 제가 매수 or 매도를
한 후에 위의 방법대로 설정되어 시스템이 움직일 수 있도록 만들었으면 합니다.
항상 감사드립니다. 그럼 수고하세요.