커뮤니티
41838 답변 부탁합니다
2015-05-14 18:30:24
121
글번호 86058
감사합니다
답변 1
예스스탁 예스스탁 답변
2015-05-15 08:32:54
안녕하세요
예스스탁입니다.
분할로 청산하시게 되면
직전거래의 청산은 해당 포지션에서 첫번째 발생한 청산명입니다.
그러므로 bx1로 일부 청산후 trailing청산으로 청산하면 bx1을 리턴합니다.
분할청산을 하시므로 다른함수를 이용하셔야 합니다.
직전거래의 마지막 청산명을 사용하시므로
IsExitName대신에 LatestExitName(1)을 이용하셔야 합니다.
아래 수정한식입니다.
외부변수는 임의로 지정했습니다.
input : 손실(5),청산가대비(3),수익수량(3),수익(3),최고가대비(3);
var : cond1(0),Trailing청산가(0),Trailing청산(0);
Var8 = Highest(H, BarsSinceEntry()+1);
SetStopLoss(손실);
if crossup(c,ma(C,20)) then
{
if LatestExitName(1) != "trailing청산" Then
buy("매수");
if LatestExitName(1) == "trailing청산" and
C <= ExitPrice(1)*(1 - 청산가대비/100) Then //청산가대비 X % 하락시
buy("매수연속");
}
If MarketPosition ==1 Then{
if CodeCategory ==1 or 2 and BasePrice < 100000 Then
Var10= int(int(MaxContracts*수익수량/100)/10)*10;
Else
Var10= int(MaxContracts*수익수량/100);
if CurrentContracts==MaxContracts Then
exitlong("bx1",atlimit,entryPrice*(1+수익/100),"",var10,1);
If Var8 >= EntryPrice() * (1 + 수익/100) Then {
Cond1 = var8 * (1 - 최고가대비/100);
Trailing청산가 = C;
Trailing청산 = 1;
ExitLong("trailing청산", Atstop, Cond1);
}
}
즐거운 하루되세요
> 풍요지기 님이 쓴 글입니다.
> 제목 : 41838 답변 부탁합니다
> 감사합니다
이전글