커뮤니티
저 밑에 질문올려놨는데.. 제것만 안달아주세요??
2011-03-03 15:48:16
802
글번호 36251
17423번 답글좀 부탁드립니다...
답변 1
예스스탁 예스스탁 답변
2011-03-03 16:41:37
안녕하세요
예스스탁입니다.
죄송합니다. 답글이 있어 답변을 단것으로 착각했습니다.
1.
if data2(CrossDown(c,9.00)) Then
buy("b");
if data2(CrossUp(c,9.00)) Then
ExitLong("x");
if MarketPosition == 1 Then{
if MarketPosition[1] != 1 Then{
var1 = CurrentContracts;
var2 = int(CurrentContracts*0.3);
}
exitlong("bx1",atlimit, EntryPrice*1.1,"b",var2,1);
exitlong("bx2",atlimit, EntryPrice*1.2,"b",var2,1);
exitlong("bx3",atlimit, EntryPrice*1.3);
}
위 수식을 주종목 - 콜 255,참조종목 data2 - 풋 270에 적용결과 첨부된 그림과 같이
정상적으로 신호가 발생합니다.
아마 수량을 1이나 분할해서 1이하의 수가 나오는 수량으로 지정하신 것 같습니다.
첨부된 그림은 수량을 10으로 해서 신호발생한 것입니다.
수량은 시스템 트레이딩 설정창의 비용/수량탭에서 하실 수도 있고
수식에서 직접 할 수도 있습니다.
수식에서 처리하면 아래와 같습니다.
input : 진입수량(10);
if data2(CrossDown(c,9.00)) Then
buy("b",OnClose,def,진입수량);
if data2(CrossUp(c,9.00)) Then
ExitLong("x");
if MarketPosition == 1 Then{
if MarketPosition[1] != 1 Then{
var1 = CurrentContracts;
var2 = int(CurrentContracts*0.3);
}
exitlong("bx1",atlimit, EntryPrice*1.1,"b",var2,1);
exitlong("bx2",atlimit, EntryPrice*1.2,"b",var2,1);
exitlong("bx3",atlimit, EntryPrice*1.3);
}
2.
옵션 전종목을 감시하는 것은 현실적으로 가능하지 않고 무리가 있습니다.
말씀하신 몇개의 종목을 감시하신 다면 아래와 같은 식을 사용하시면 됩니다.
if data2(C < 5.0) or data3(C < 5.0) or data4(C < 5.0) then buy();
3.
/*
진입후 10%수익일때 30%청산
20%수익일때 30%청산
30%수익일때 30%청산
그런데 만일 20%수익일때 60%까지 청산이 되었는데.. 가격이 되밀려서
10%수익라인으로 가면 그 자리에서 모두 청산*/
input : 진입수량(10);
if data2(CrossDown(c,9.00)) Then
buy("b",OnClose,def,진입수량);
if data2(CrossUp(c,9.00)) Then
ExitLong("x");
if MarketPosition == 1 Then{
if MarketPosition[1] != 1 Then{
var1 = CurrentContracts;
var2 = int(CurrentContracts*0.3);
}
exitlong("bx1",atlimit, EntryPrice*1.1,"b",var2,1);
exitlong("bx2",atlimit, EntryPrice*1.2,"b",var2,1);
exitlong("bx3",atlimit, EntryPrice*1.3,"b",var2,1);
if highest(H,BarsSinceEntry) >= EntryPrice*1.2 Then
ExitLong("bx4",AtStop,EntryPrice*1.1);
}
4.
수식에서는 잔고의 상황을 알 수 없으므로
사용자가 설정창이나 혹은 수식에서 지정한
수량이나 금액으로 무조건 주문이 나갑니다.
설정창에서는 수량이나 금액으로 지정가능하며
수식에서는 금액으로 지정할 경우 그것을 수량으로 변경하는 계산식을 작성하여
시스템 함수에 사용해야 합니다.
input : 진입금액(10000000);
var1 = int(10000000/(C*100000));
if ~~~~~ Then
buy("b",OnClose,def,var1);
1천만원을 수량으로 변경
즐거운 하루되세요
> 현이아빠 님이 쓴 글입니다.
> 제목 : 저 밑에 질문올려놨는데.. 제것만 안달아주세요??
> 17423번 답글좀 부탁드립니다...