커뮤니티
다른 식인가요
2013-01-12 13:01:58
239
글번호 58096
제 생각과 다른 식인가요
모멘텀 교차 에서 사서 한계약식 0.1 포인트 수익 날때 마다 청산하는 것인데
전혀 수익이 없네요 ...
생각이 문제인가요
식이 문제인가요
??????
그리고 하루 한번만 진입하게 한 부분은 어디 인가요 ??
Input : P(10), P1(13),진입수량(10) ;
var : MMT(0),MMTSig(0);
MMT = Momentum(P);
MMTSig = ma(MMT,p1);
if date != date[1] Then{
Condition1 = false;
Condition2 = false;
}
if Condition1 == false and crossup (mmt,mmtsig) Then
buy("bMom", OnClose,def,진입수량);
if Condition2 == false and CrossDown(mmt,mmtsig) Then
sell("SMom", onclose,def,진입수량);
if MarketPosition == 1 Then {
Condition1 = true;
ExitLong("Bx1",AtLimit,EntryPrice+0.1,"",1,1);
ExitLong("Bx2",AtLimit,EntryPrice+0.2,"",1,1);
ExitLong("Bx3",AtLimit,EntryPrice+0.3,"",1,1);
ExitLong("Bx4",AtLimit,EntryPrice+0.4,"",1,1);
ExitLong("Bx5",AtLimit,EntryPrice+0.5,"",1,1);
ExitLong("Bx6",AtLimit,EntryPrice+0.6,"",1,1);
ExitLong("Bx7",AtLimit,EntryPrice+0.7,"",1,1);
ExitLong("Bx8",AtLimit,EntryPrice+0.8,"",1,1);
ExitLong("Bx9",AtLimit,EntryPrice+0.9,"",1,1);
ExitLong("Bx10",AtLimit,EntryPrice+1,"",1,1);
if CurrentContracts == 9 Then
ExitLong("x1",AtStop,(EntryPrice+0.1)-0.25);
if CurrentContracts == 8 Then
ExitLong("x2",AtStop,(EntryPrice+0.2)-0.25);
if CurrentContracts == 7 Then
ExitLong("x3",AtStop,(EntryPrice+0.3)-0.25);
if CurrentContracts == 6 Then
ExitLong("x4",AtStop,(EntryPrice+0.4)-0.25);
if CurrentContracts == 5 Then
ExitLong("x5",AtStop,(EntryPrice+0.5)-0.25);
if CurrentContracts == 4 Then
ExitLong("x6",AtStop,(EntryPrice+0.6)-0.25);
if CurrentContracts == 3 Then
ExitLong("x7",AtStop,(EntryPrice+0.7)-0.25);
if CurrentContracts == 2 Then
ExitLong("x8",AtStop,(EntryPrice+0.8)-0.25);
if CurrentContracts ==1 Then
ExitLong("x9",AtStop,(EntryPrice+0.9)-0.25);
}
If MarketPosition == -1 Then{
Condition2 = false;
ExitShort("Sx1",AtLimit,EntryPrice-0.1,"",1,1);
ExitShort("Sx2",AtLimit,EntryPrice-0.2,"",1,1);
ExitShort("Sx3",AtLimit,EntryPrice-0.3,"",1,1);
ExitShort("Sx4",AtLimit,EntryPrice-0.4,"",1,1);
ExitShort("Sx5",AtLimit,EntryPrice-0.5,"",1,1);
ExitShort("Sx6",AtLimit,EntryPrice-0.6,"",1,1);
ExitShort("Sx7",AtLimit,EntryPrice-0.7,"",1,1);
ExitShort("Sx8",AtLimit,EntryPrice-0.8,"",1,1);
ExitShort("Sx9",AtLimit,EntryPrice-0.9,"",1,1);
ExitShort("Sx10",AtLimit,EntryPrice-1,"",1,1);
if CurrentContracts == 9 Then
ExitShort("xs1",AtStop,(EntryPrice-0.1)+0.25);
if CurrentContracts == 8 Then
ExitShort("xs2",AtStop,(EntryPrice-0.2)+0.25);
if CurrentContracts == 7 Then
ExitShort("xs3",AtStop,(EntryPrice-0.3)+0.25);
if CurrentContracts == 6 Then
ExitShort("xs4",AtStop,(EntryPrice-0.4)+0.25);
if CurrentContracts == 5 Then
ExitShort("xs5",AtStop,(EntryPrice-0.5)+0.25);
if CurrentContracts == 4 Then
ExitShort("xs6",AtStop,(EntryPrice-0.6)+0.25);
if CurrentContracts == 3 Then
ExitShort("xs7",AtStop,(EntryPrice-0.7)+0.25);
if CurrentContracts == 2 Then
ExitShort("xs8",AtStop,(EntryPrice-0.8)+0.25);
if CurrentContracts ==1 Then
ExitShort("xs9",AtStop,(EntryPrice-0.9)+0.25);
}
답변 1
예스스탁 예스스탁 답변
2013-01-14 15:26:59
안녕하세요
예스스탁입니다.
1.
해당식 말씀하신 내용대로 신호가 발생하고 있습니다.
0.1수익때마다 청산이 되고 최종 청산지점에서 0.25 반대로 가면
청산도 정상적으로 발생합니다.
테스트결과 수익나는 거래도 있고 반대로 갈때 청산되는 부분에 의해
손실나는 거래도 있습니다.
2.
condition1과 condition2가 진입을 제어하는 함수입니다.
두변수는 날짜가 변경되면 모두 false값을 가지고
condition1은 매수진입에 들어가면 true가 되고
condition2은 매수진입에 들어가면 true가 되어
더이상 진입을 하지 않게 하는 변수입니다.
기존식에 값의 할당에 문제가 있어 수정했습니다.
아래식 이용하시면 됩니다.
Input : P(10), P1(13),진입수량(10) ;
var : MMT(0),MMTSig(0);
MMT = Momentum(P);
MMTSig = ma(MMT,p1);
if date != date[1] Then{
Condition1 = false;
Condition2 = false;
}
if Condition1 == false and crossup (mmt,mmtsig) Then
buy("bMom", OnClose,def,진입수량);
if Condition2 == false and CrossDown(mmt,mmtsig) Then
sell("SMom", onclose,def,진입수량);
if MarketPosition == 1 Then {
Condition1 = true;
ExitLong("Bx1",AtLimit,EntryPrice+0.1,"",1,1);
ExitLong("Bx2",AtLimit,EntryPrice+0.2,"",1,1);
ExitLong("Bx3",AtLimit,EntryPrice+0.3,"",1,1);
ExitLong("Bx4",AtLimit,EntryPrice+0.4,"",1,1);
ExitLong("Bx5",AtLimit,EntryPrice+0.5,"",1,1);
ExitLong("Bx6",AtLimit,EntryPrice+0.6,"",1,1);
ExitLong("Bx7",AtLimit,EntryPrice+0.7,"",1,1);
ExitLong("Bx8",AtLimit,EntryPrice+0.8,"",1,1);
ExitLong("Bx9",AtLimit,EntryPrice+0.9,"",1,1);
ExitLong("Bx10",AtLimit,EntryPrice+1,"",1,1);
if CurrentContracts == 9 Then
ExitLong("x1",AtStop,(EntryPrice+0.1)-0.25);
if CurrentContracts == 8 Then
ExitLong("x2",AtStop,(EntryPrice+0.2)-0.25);
if CurrentContracts == 7 Then
ExitLong("x3",AtStop,(EntryPrice+0.3)-0.25);
if CurrentContracts == 6 Then
ExitLong("x4",AtStop,(EntryPrice+0.4)-0.25);
if CurrentContracts == 5 Then
ExitLong("x5",AtStop,(EntryPrice+0.5)-0.25);
if CurrentContracts == 4 Then
ExitLong("x6",AtStop,(EntryPrice+0.6)-0.25);
if CurrentContracts == 3 Then
ExitLong("x7",AtStop,(EntryPrice+0.7)-0.25);
if CurrentContracts == 2 Then
ExitLong("x8",AtStop,(EntryPrice+0.8)-0.25);
if CurrentContracts ==1 Then
ExitLong("x9",AtStop,(EntryPrice+0.9)-0.25);
}
If MarketPosition == -1 Then{
Condition2 = true;
ExitShort("Sx1",AtLimit,EntryPrice-0.1,"",1,1);
ExitShort("Sx2",AtLimit,EntryPrice-0.2,"",1,1);
ExitShort("Sx3",AtLimit,EntryPrice-0.3,"",1,1);
ExitShort("Sx4",AtLimit,EntryPrice-0.4,"",1,1);
ExitShort("Sx5",AtLimit,EntryPrice-0.5,"",1,1);
ExitShort("Sx6",AtLimit,EntryPrice-0.6,"",1,1);
ExitShort("Sx7",AtLimit,EntryPrice-0.7,"",1,1);
ExitShort("Sx8",AtLimit,EntryPrice-0.8,"",1,1);
ExitShort("Sx9",AtLimit,EntryPrice-0.9,"",1,1);
ExitShort("Sx10",AtLimit,EntryPrice-1,"",1,1);
if CurrentContracts == 9 Then
ExitShort("xs1",AtStop,(EntryPrice-0.1)+0.25);
if CurrentContracts == 8 Then
ExitShort("xs2",AtStop,(EntryPrice-0.2)+0.25);
if CurrentContracts == 7 Then
ExitShort("xs3",AtStop,(EntryPrice-0.3)+0.25);
if CurrentContracts == 6 Then
ExitShort("xs4",AtStop,(EntryPrice-0.4)+0.25);
if CurrentContracts == 5 Then
ExitShort("xs5",AtStop,(EntryPrice-0.5)+0.25);
if CurrentContracts == 4 Then
ExitShort("xs6",AtStop,(EntryPrice-0.6)+0.25);
if CurrentContracts == 3 Then
ExitShort("xs7",AtStop,(EntryPrice-0.7)+0.25);
if CurrentContracts == 2 Then
ExitShort("xs8",AtStop,(EntryPrice-0.8)+0.25);
if CurrentContracts ==1 Then
ExitShort("xs9",AtStop,(EntryPrice-0.9)+0.25);
}
즐거운 하루되세요
> 구다이전설 님이 쓴 글입니다.
> 제목 : 다른 식인가요
>
제 생각과 다른 식인가요
모멘텀 교차 에서 사서 한계약식 0.1 포인트 수익 날때 마다 청산하는 것인데
전혀 수익이 없네요 ...
생각이 문제인가요
식이 문제인가요
??????
그리고 하루 한번만 진입하게 한 부분은 어디 인가요 ??
Input : P(10), P1(13),진입수량(10) ;
var : MMT(0),MMTSig(0);
MMT = Momentum(P);
MMTSig = ma(MMT,p1);
if date != date[1] Then{
Condition1 = false;
Condition2 = false;
}
if Condition1 == false and crossup (mmt,mmtsig) Then
buy("bMom", OnClose,def,진입수량);
if Condition2 == false and CrossDown(mmt,mmtsig) Then
sell("SMom", onclose,def,진입수량);
if MarketPosition == 1 Then {
Condition1 = true;
ExitLong("Bx1",AtLimit,EntryPrice+0.1,"",1,1);
ExitLong("Bx2",AtLimit,EntryPrice+0.2,"",1,1);
ExitLong("Bx3",AtLimit,EntryPrice+0.3,"",1,1);
ExitLong("Bx4",AtLimit,EntryPrice+0.4,"",1,1);
ExitLong("Bx5",AtLimit,EntryPrice+0.5,"",1,1);
ExitLong("Bx6",AtLimit,EntryPrice+0.6,"",1,1);
ExitLong("Bx7",AtLimit,EntryPrice+0.7,"",1,1);
ExitLong("Bx8",AtLimit,EntryPrice+0.8,"",1,1);
ExitLong("Bx9",AtLimit,EntryPrice+0.9,"",1,1);
ExitLong("Bx10",AtLimit,EntryPrice+1,"",1,1);
if CurrentContracts == 9 Then
ExitLong("x1",AtStop,(EntryPrice+0.1)-0.25);
if CurrentContracts == 8 Then
ExitLong("x2",AtStop,(EntryPrice+0.2)-0.25);
if CurrentContracts == 7 Then
ExitLong("x3",AtStop,(EntryPrice+0.3)-0.25);
if CurrentContracts == 6 Then
ExitLong("x4",AtStop,(EntryPrice+0.4)-0.25);
if CurrentContracts == 5 Then
ExitLong("x5",AtStop,(EntryPrice+0.5)-0.25);
if CurrentContracts == 4 Then
ExitLong("x6",AtStop,(EntryPrice+0.6)-0.25);
if CurrentContracts == 3 Then
ExitLong("x7",AtStop,(EntryPrice+0.7)-0.25);
if CurrentContracts == 2 Then
ExitLong("x8",AtStop,(EntryPrice+0.8)-0.25);
if CurrentContracts ==1 Then
ExitLong("x9",AtStop,(EntryPrice+0.9)-0.25);
}
If MarketPosition == -1 Then{
Condition2 = false;
ExitShort("Sx1",AtLimit,EntryPrice-0.1,"",1,1);
ExitShort("Sx2",AtLimit,EntryPrice-0.2,"",1,1);
ExitShort("Sx3",AtLimit,EntryPrice-0.3,"",1,1);
ExitShort("Sx4",AtLimit,EntryPrice-0.4,"",1,1);
ExitShort("Sx5",AtLimit,EntryPrice-0.5,"",1,1);
ExitShort("Sx6",AtLimit,EntryPrice-0.6,"",1,1);
ExitShort("Sx7",AtLimit,EntryPrice-0.7,"",1,1);
ExitShort("Sx8",AtLimit,EntryPrice-0.8,"",1,1);
ExitShort("Sx9",AtLimit,EntryPrice-0.9,"",1,1);
ExitShort("Sx10",AtLimit,EntryPrice-1,"",1,1);
if CurrentContracts == 9 Then
ExitShort("xs1",AtStop,(EntryPrice-0.1)+0.25);
if CurrentContracts == 8 Then
ExitShort("xs2",AtStop,(EntryPrice-0.2)+0.25);
if CurrentContracts == 7 Then
ExitShort("xs3",AtStop,(EntryPrice-0.3)+0.25);
if CurrentContracts == 6 Then
ExitShort("xs4",AtStop,(EntryPrice-0.4)+0.25);
if CurrentContracts == 5 Then
ExitShort("xs5",AtStop,(EntryPrice-0.5)+0.25);
if CurrentContracts == 4 Then
ExitShort("xs6",AtStop,(EntryPrice-0.6)+0.25);
if CurrentContracts == 3 Then
ExitShort("xs7",AtStop,(EntryPrice-0.7)+0.25);
if CurrentContracts == 2 Then
ExitShort("xs8",AtStop,(EntryPrice-0.8)+0.25);
if CurrentContracts ==1 Then
ExitShort("xs9",AtStop,(EntryPrice-0.9)+0.25);
}
다음글
이전글