예스스탁
예스스탁 답변
2020-11-02 11:49:06
안녕하세요
예스스탁입니다.
추가진입하는 전략이므로
설정창에서 피라미딩을 모든진입신호 허용으로 설정하고 적용하시면 됩니다.
1
input : P1(10),P2(20);
var : mav1(0),mav2(0),T(0),ii(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if TotalTrades > TotalTrades[1] then
{
if IsExitName("bx",1) == true or IsExitName("sx",1) == true then
T = 0;
}
if CrossUp(mav1,mav2) Then
{
T = 1;
ii = Index;
value1 = 0;
value2 = 0;
}
if CrossDown(mav1,mav2) Then
{
T = -1;
ii = Index;
value1 = 0;
value2 = 0;
}
if T == 1 and Index > ii and CrossDown(L,mav1) Then
{
T = 2;
ii = Index;
}
if T == 2 and Index > ii and L > L[1] Then
{
ii = Index;
value1 = value1+1;
if value1 == 2 Then
T = 3;
}
if T == 3 and Index > ii and L < L[1] Then
{
ii = Index;
value2 = value2+1;
if Value2 > 0 Then
Sell("s",OnClose,DEf,value2);
}
if T == -1 and Index > ii and CrossUp(H,mav1) Then
{
T = -2;
ii = Index;
}
if T == -2 and Index > ii and H < H[1] Then
{
ii = Index;
value1 = value1+1;
if value1 == 2 Then
T = -3;
}
if T == -3 and Index > ii and H > H[1] Then
{
ii = Index;
value2 = value2+1;
if Value2 > 0 Then
Buy("b",OnClose,DEf,value2);
}
if MarketPosition == -1 Then
{
ExitShort("sx",AtLimit,AvgEntryPrice-PriceScale*20);
}
if MarketPosition == 1 Then
{
ExitLong("bx",AtLimit,AvgEntryPrice+PriceScale*20);
}
2
input : P1(10),P2(20),총이익틱수(100);
var : mav1(0),mav2(0),T(0),ii(0),profit(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
profit = PriceScale*총이익틱수;
if TotalTrades > TotalTrades[1] then
{
if IsExitName("bx",1) == true or IsExitName("sx",1) == true then
T = 0;
}
if CrossUp(mav1,mav2) Then
{
T = 1;
ii = Index;
value1 = 0;
value2 = 0;
}
if CrossDown(mav1,mav2) Then
{
T = -1;
ii = Index;
value1 = 0;
value2 = 0;
}
if T == 1 and Index > ii and CrossDown(L,mav1) Then
{
T = 2;
ii = Index;
}
if T == 2 and Index > ii and L > L[1] Then
{
ii = Index;
value1 = value1+1;
if value1 == 2 Then
T = 3;
}
if T == 3 and Index > ii and L < L[1] Then
{
ii = Index;
value2 = value2+1;
if Value2 > 0 Then
Sell("s",OnClose,DEf,value2);
}
if T == -1 and Index > ii and CrossUp(H,mav1) Then
{
T = -2;
ii = Index;
}
if T == -2 and Index > ii and H < H[1] Then
{
ii = Index;
value1 = value1+1;
if value1 == 2 Then
T = -3;
}
if T == -3 and Index > ii and H > H[1] Then
{
ii = Index;
value2 = value2+1;
if Value2 > 0 Then
Buy("b",OnClose,DEf,value2);
}
if MarketPosition == -1 Then
{
var1 = profit-PositionProfit(0);
ExitShort("sx",AtLimit,C-(var1/CurrentContracts));
}
if MarketPosition == 1 Then
{
var1 = profit-PositionProfit(0);
ExitLong("bx",atlimit,C+(var1/CurrentContracts));
}
즐거운 하루되세요
> 음양조파 님이 쓴 글입니다.
> 제목 : 수식 부탁합니다.
> 수고가 많으십니다. 식 부탁드립니다.
1. 10봉, 20봉 이평선이 정배열이 된 상태에서 봉들이 진행 중
어느 봉의 하단이 처음으로 10봉이평선을 터치한 이후에
봉들이 2개 이상 저점을 높이다가 최초로 저점을 하향돌파하면
첫번째 한 개 매도 진입
그리고 다시 봉들이 2개 이상 저점을 높이다가 두 번 저점을 하향돌파하면
두번째 두 개 매도 진입
...이런 식으로 세 번째는 세 개, 네번
째는 네 개...계속 같은 조건이 오면 같은 방식으로 반복해서 누적진입
진입회수가 몇이 되었든, 현재 가격이 재고 물량의 평균가보다 20틱 이익이면(즉 한 개면 20틱, 2개면 40틱, 3개면 60틱 이익 상황이 되겠지요? 4틱이 1포인트입니다.) 전량 청산
반대 상황에서 이번에는 10봉,20봉 이평선이 역배열...마찬가지 방식으로 진입 청산
2. 위 식에서, 전량 청산 조건을 평균가보다 20틱 이익아 아니라, 수량 상관없이 모두 합한 총 이익이 100틱(즉 한 포인트당 4틱이라면 총 이익이 25포인트)이면 청산하라고 하려면 어떻게 변용하나요? 또, 진입물량을 순서대로 늘리지 않고 그냥 동일 물량으로 하려면 어떻게 변용하나요?
감사합니다!!!!