커뮤니티
시스템 수식 문의합니다
2017-10-25 10:15:24
134
글번호 113615
시스템 수식을 작성하는 중인데, 랭귀지에 대한 습득이 되어 있어도, 식으로 구현하는데 어려움이 많네요^^
고민하다가 모르는 건 물어보는게 상책이라 생각해서 질문드립니다.
1. 일단 진입조건은 완성된 상태에서 청산하는 부분을 어떻게 설정해야 되는지 모르겠습니다.
매수진입 후, 그 1개의 매수진입에 대하여 청산의 경우를 여러가지로 하고 싶은 경우
어떻게 수식을 짜야 되나요?
예를들어, 매수진입 후, A, B, C라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하려면
일단 구조는
if A then exitlong();
if B then exitlong();
if C then exitlong();
이런식으로 하면 되나요?
2. 2계약 이상(2, 4, 6, 8 식으로 짝수로 진입) 진입 후,
진입한 계약의 반은, A, B 라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하고,
진입한 계약의 반은, A, C, D 라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하려면,
일단 구조가, A라는 청산조건은 둘 모두에 해당되는데, 구조를 어떻게 짜야 되나요?
3. 아래의 내용으로 시스템을 만드려고 하는데, 수식을 어떻게 해야될까요?
(1) 진입신호가 나온 봉기준으로, 그 이전 10개의 봉중 최저가보다 1틱 아래로 현재가가 갔을때 청산.
(2) 진입이후 상승분이 0.5포인트 상승이후, 트레일링 청산가를 진입가보다 1틱 위로 설정되게 하고,
0.5포인트에서 0.1포인트씩 상승할때마다, 트레일링 청산가를 위에서 설정된 가격에 0.1포인트씩 상승하게 설정하여,
상승했다가 하락하면서 위에서 설정된 청산가만큼 하락하여 도달하면 청산.
꼭 좀 답변부탁드리겠습니다.
답변 1
예스스탁 예스스탁 답변
2017-10-26 11:16:15
안녕하세요
예스스탁입니다.
1
예 맞습니다.
2
var : bx1(0),bx2(0),bx3(0),bx4(0);
if MarketPosition == 1 then
{
//진입후 각 청산별 횟수 카운트
if CurrentContracts < CurrentContracts[1] Then{
if LatestExitName(0) == "bx1" Then
bx1 = bx1+1;
if LatestExitName(0) == "bx2" Then
bx2 = bx2+1;
if LatestExitName(0) == "bx3" Then
bx3 = bx3+1;
if LatestExitName(0) == "bx4" Then
bx4 = bx4+1;
}
#조건A는 2번
if bx1 < 2 and 조건A then exitlong("bx1",OnClose,def,"",Floor(MaxContracts*0.5),2);
#조건B는 1번
if bx2 < 1 and 조건B then exitlong("bx2",OnClose,def,"",Floor(MaxContracts*0.5),1);
#조건C는 1번
if bx3 < 1 and 조건C then exitlong("bx3",OnClose,def,"",Floor(MaxContracts*0.5),1);
#조건D는 1번
if bx4 < 1 and 조건D then exitlong("bx4",OnClose,def,"",Floor(MaxContracts*0.5),1);
}
Else{
Bx1 = 0;
Bx2 = 0;
Bx3 = 0;
Bx4 = 0;
}
3
var1 = lowest(L,10);
if MarketPosition == 1 then
{
ExitLong("bx",AtStop,var1[BarsSinceEntry]-PriceScale*1);
}
4
var : MAXPL(0);
if MarketPosition == 1 then
{
MAXPL = int((highest(h,BarsSinceEntry)-EntryPrice)/0.1);
if MAXPL >= 5 Then
ExitLong("bx",AtStop,(EntryPrice+PriceScale*1)+0.1*(MAXPL-5));
}
if MarketPosition == -1 then
{
MAXPL = int((EntryPrice-lowest(L,BarsSinceEntry))/0.1);
if MAXPL >= 5 Then
ExitShort("sx",AtStop,(EntryPrice-PriceScale*1)-0.1*(MAXPL-5));
}
즐거운 하루되세요
> 디벨로퍼 님이 쓴 글입니다.
> 제목 : 시스템 수식 문의합니다
> 시스템 수식을 작성하는 중인데, 랭귀지에 대한 습득이 되어 있어도, 식으로 구현하는데 어려움이 많네요^^
고민하다가 모르는 건 물어보는게 상책이라 생각해서 질문드립니다.
1. 일단 진입조건은 완성된 상태에서 청산하는 부분을 어떻게 설정해야 되는지 모르겠습니다.
매수진입 후, 그 1개의 매수진입에 대하여 청산의 경우를 여러가지로 하고 싶은 경우
어떻게 수식을 짜야 되나요?
예를들어, 매수진입 후, A, B, C라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하려면
일단 구조는
if A then exitlong();
if B then exitlong();
if C then exitlong();
이런식으로 하면 되나요?
2. 2계약 이상(2, 4, 6, 8 식으로 짝수로 진입) 진입 후,
진입한 계약의 반은, A, B 라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하고,
진입한 계약의 반은, A, C, D 라는 조건 중 어느 하나라도 먼저 만족하면 청산되게 하려면,
일단 구조가, A라는 청산조건은 둘 모두에 해당되는데, 구조를 어떻게 짜야 되나요?
3. 아래의 내용으로 시스템을 만드려고 하는데, 수식을 어떻게 해야될까요?
(1) 진입신호가 나온 봉기준으로, 그 이전 10개의 봉중 최저가보다 1틱 아래로 현재가가 갔을때 청산.
(2) 진입이후 상승분이 0.5포인트 상승이후, 트레일링 청산가를 진입가보다 1틱 위로 설정되게 하고,
0.5포인트에서 0.1포인트씩 상승할때마다, 트레일링 청산가를 위에서 설정된 가격에 0.1포인트씩 상승하게 설정하여,
상승했다가 하락하면서 위에서 설정된 청산가만큼 하락하여 도달하면 청산.
꼭 좀 답변부탁드리겠습니다.
다음글
이전글