커뮤니티
수식 문의
2014-06-26 18:06:02
134
글번호 76149
1. 피라미딩 진입이 A => B => C => D => E 순서로 되어 있다고 할때,
D와 E를 알 수 있는 방법이 없는지요?
피라미딩 진입이 아닐 경우 아래 코드와 같이 하면 되는 듯 한데, 피라미딩시는 어떻게 할 수 없는지요?
if (IsEntryName("D", 1) == TRUE) AND (IsEntryName("E", 0) == TRUE) then 청산
2. 피라미딩 A=>B=>C 순서로 진입되었다고 할때, 최종진입한 C를 기준으로 M1이 M3를 2번 크로스다운하면 청산하고자 하는데 원하는데로 나오질 않습니다. 검증부탁드리겠습니다.
VARS: CNT(0);
VARS: MMDxELCheck(0);
VARS: MMD.xELGetReady(FALSE);
if (MARKETPOSITION == 1) then
{
if (CURRENTCONTRACTS > CURRENTCONTRACTS[1]) then { CNT = 0; }
if ( (MMDxELCheck == 0) AND (CNT == 0) AND (CROSSDOWN(M1, M3)) ) then { MMDxELCheck = 1; }
if ( (MMDxELCheck == 1) AND (CROSSUP(M1, M3)) ) then { MMDxELCheck = 2; }
if ( (MMDxELCheck == 2) AND (CROSSDOWN(M1, M3 - PRICESCALE)) ) then { MMDxELCheck = 3; }
if ( (MMDxELCheck == 3) AND (M1 < M3) ) then { MMD.xELGetReady = TRUE; }
if ( (MMD.xELGetReady == TRUE) AND (CROSSUP(M1, M3)) ) then { MMD.xELGetReady = FALSE; MMDxELCheck = 0; }
}
if (MARKETPOSITION == 0) then
{
CNT = 0;
MMDxELCheck = 0;
MMD.xELGetReady = FALSE;
}
3. 그리고 위식에서 (아래 코드 참조) 다시 크로스업하면 MMD.xELGetReady = FALSE; 로 해주는데, 이게 아닌 다음 크로스 다운시 MMD.xELGetReady = TRUE; 로 해주고자 할때 어떻게 식을 변경해야 할지 모르겠습니다. 정리하면 M1이 M3를 크로스업하면 취소시키는게 아니라 다음 크로스다운시 청산이 진행됩니다. 즉 M1이 M3를 3번 크로스시 청산하고자 합니다.
if ( (MMD.xELGetReady == TRUE) AND (CROSSUP(M1, M3)) ) then { MMD.xELGetReady = FALSE; MMDxELCheck = 0; }
4. 피라미딩 진입이 A => B => C => D => E 순서로 되어 있다고 할때,
E를 기준으로 최대수익범위가 10틱 미만이고, 수익이 -1틱이 되었을때 모두 청산하고자 합니다. 다시 설명하자면 E진입이 7틱까지 수익을 냈다가 -1틱으로 손실전환되면 청산합니다.
수식 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2014-06-26 18:34:56
안녕하세요
예스스탁입니다.
1.
함수중에 가장 최근에 진입의 명칭을 리턴하는 함수가 있습니다.
LatestEntryName(0)
파라미딩 상태에도 가장 최근 추가된 진입명을 리턴합니다.
위함수로 처리하시면 됩니다.
if MarketPosition == 1 and
(LatestEntryName(0) == "D" or LatestEntryName(0) == "E") Then
2.
아래와 같이 간단히 작성하시면 됩니다.
최종 진입이후에 crossdown이 2번 발생하면 청산입니다.
VARS: CNT(0);
if (MARKETPOSITION == 1) then
{
if (CURRENTCONTRACTS > CURRENTCONTRACTS[1]) then
CNT = 0;
if CROSSDOWN(M1, M3) Then
cnt = cnt+1;
if cnt == 2 Then
exitlong();
}
Else
CNT = 0;
만약 진입이 3회이상 누적된 경우에만 청산이 나오게 하시려면
아래조건와 같이 조건을 추가하시면 되며
if cnt == 2 and MaxEntries == 3 Then
exitlong();
3회이상 피라미딩이 되고 최종 진입이 C일때만 청산이 되게 하시려면
아래와 같이 if 조건을 만드시면 만드시면 됩니다.
if cnt == 2 and MaxEntries == 3 and LatestEntryName(0) == "C" Then
exitlong();
3.
해당 부분은 위식에서 cnt == 3으로만 변경하시면 됩니다.
4.
VARS: CNT(0),HH(0);
if (MARKETPOSITION == 1) then
{
//최종 진입이후의 최고가
if (CURRENTCONTRACTS > CURRENTCONTRACTS[1]) then
HH = H;
if H > HH Then
HH = H;
//최종진입이후의 최고가가 최종진입의 진입가 대비 10틱 이하이고
//최종진입가 대비 1틱이하의 시세 발생하면 청산
if HH <= LatestEntryPrice(0)+PriceScale*10 Then
ExitLong("bx",AtStop,LatestEntryPrice(0)-PriceScale);
}
즐거운 하루되세요
> gt 님이 쓴 글입니다.
> 제목 : 수식 문의
> 1. 피라미딩 진입이 A => B => C => D => E 순서로 되어 있다고 할때,
D와 E를 알 수 있는 방법이 없는지요?
피라미딩 진입이 아닐 경우 아래 코드와 같이 하면 되는 듯 한데, 피라미딩시는 어떻게 할 수 없는지요?
if (IsEntryName("D", 1) == TRUE) AND (IsEntryName("E", 0) == TRUE) then 청산
2. 피라미딩 A=>B=>C 순서로 진입되었다고 할때, 최종진입한 C를 기준으로 M1이 M3를 2번 크로스다운하면 청산하고자 하는데 원하는데로 나오질 않습니다. 검증부탁드리겠습니다.
VARS: CNT(0);
VARS: MMDxELCheck(0);
VARS: MMD.xELGetReady(FALSE);
if (MARKETPOSITION == 1) then
{
if (CURRENTCONTRACTS > CURRENTCONTRACTS[1]) then { CNT = 0; }
if ( (MMDxELCheck == 0) AND (CNT == 0) AND (CROSSDOWN(M1, M3)) ) then { MMDxELCheck = 1; }
if ( (MMDxELCheck == 1) AND (CROSSUP(M1, M3)) ) then { MMDxELCheck = 2; }
if ( (MMDxELCheck == 2) AND (CROSSDOWN(M1, M3 - PRICESCALE)) ) then { MMDxELCheck = 3; }
if ( (MMDxELCheck == 3) AND (M1 < M3) ) then { MMD.xELGetReady = TRUE; }
if ( (MMD.xELGetReady == TRUE) AND (CROSSUP(M1, M3)) ) then { MMD.xELGetReady = FALSE; MMDxELCheck = 0; }
}
if (MARKETPOSITION == 0) then
{
CNT = 0;
MMDxELCheck = 0;
MMD.xELGetReady = FALSE;
}
3. 그리고 위식에서 (아래 코드 참조) 다시 크로스업하면 MMD.xELGetReady = FALSE; 로 해주는데, 이게 아닌 다음 크로스 다운시 MMD.xELGetReady = TRUE; 로 해주고자 할때 어떻게 식을 변경해야 할지 모르겠습니다. 정리하면 M1이 M3를 크로스업하면 취소시키는게 아니라 다음 크로스다운시 청산이 진행됩니다. 즉 M1이 M3를 3번 크로스시 청산하고자 합니다.
if ( (MMD.xELGetReady == TRUE) AND (CROSSUP(M1, M3)) ) then { MMD.xELGetReady = FALSE; MMDxELCheck = 0; }
4. 피라미딩 진입이 A => B => C => D => E 순서로 되어 있다고 할때,
E를 기준으로 최대수익범위가 10틱 미만이고, 수익이 -1틱이 되었을때 모두 청산하고자 합니다. 다시 설명하자면 E진입이 7틱까지 수익을 냈다가 -1틱으로 손실전환되면 청산합니다.
수식 부탁드립니다.
감사합니다.
다음글
이전글