커뮤니티
이것저것 문의드립니다.
2017-10-25 09:54:09
141
글번호 113614
아직도 알쏭달쏭한 것 투성이지만 요즘은 신호 내서 확인해보기도 하고 몇개 모의로 실제 써먹기도 하네요. 다만 몇몇 숫자들 변수로 바꾸는 것 외에 응용은 잘 안되고 있습니다. 매번 감사합니다.
1. 시스템
참조데이터가 특정가격(변수a)이 되면(상향돌파 or 하향돌파 or ==) 매수
참조데이터가 특정가격(변수b)이 되면 익절
참조데이터가 특정가격(변수c)이 되면 손절
2. 55195 재질문
input : 설정가(10000);
if MarketPosition == 0 and (Crossup(c,설정가) or CrossDown(c,설정가)) Then
buy("b1");
if MarketPosition == 1 Then{
ExitLong("bp",atlimit,EntryPrice*1.04);
if MaxEntries == 1 then
buy("b2",atlimit,LatestEntryPrice(0)*0.99 + (PriceScale*1+LatestEntryPrice(0)*0.0036));
if MaxEntries == 2 then
buy("b3",atlimit,LatestEntryPrice(0)*0.99 + (PriceScale*1+LatestEntryPrice(0)*0.0036));
if MaxEntries == 3 Then
ExitLong("bl",AtStop,EntryPrice*0.97);
}
55195 2번 질문해서 답 얻었던 건데요. 원질문은 아래와 같은데, 코딩은 최근진입가격에서 -1%+슬리피지+비용이 되면 자동진입하는 코딩같습니다. 1차 포지션의 손실률을 -1%로 만들 수 있도록 물을 타려고 한 내용인데요. 이대로 하면 2차 진입 후 전체 포지션이 손실률 -1%가 되나요? 헷갈려서 질문드립니다.
{1차 비용(위의 설정 슬리피지+설정 수수료)+ 1차 포지션의 손실률}을 -1%(변수4)로 만들수 있도록 진입
(== 1차포지션 손실률이 -2%라면 2차진입후 전체포지션 손실률은 -1%가 되도록)
3. 시스템
-피봇포인트
-피봇포인트 표준편차
1차진입
피봇포인트 도달하면(상향or하향or==) 진입, 투자금액 100가운데 30
2차진입
(피봇포인트 - 표준편차 1)에 가격이 도달하면 투자금액 100가운데 60
3차진입
(피봇포인트 - 표준편차 2)에 가격이 도달하면 투자금액 100가운데 120
청산
-1차든 2차든 3차든 전체 포지션의 수익률이 3%에 도달하면 일괄청산
-3차까지 진입후 포지션 손실률이 2%에 도달하는 순간 청산
4. 시스템
-피봇포인트
-피봇포인트 표준편차
1차진입
피봇포인트 도달하면(상향or하향or==) 진입, 투자금액 100가운데 100
2차진입
(피봇포인트 + 표준편차 1)에 도달하면 투자금액 100의 50 진입
3차진입
(피봇포인트 + 표준편차 2)에 가격이 도달하면 투자금액 100가운데 25
4차진입
(피봇포인트 + 표준편차 3)에 가격이 도달하면 투자금액 100가운데 12
청산
-1차에선 손실률이 -3%에 도달하면 청산 이후 진입 없음
-2·3·4차에선 포지션이 이전 진입포인트+표준편차 0.1에 도달하면 청산, 이후 진입 없음. 예를 들어 2차포지션에선 1차진입가+0.1표준편차되는 곳에서 전체포지션 청산, 이후 진입 없음. 3차포지션에선 2차진입가+표준편차0.1(표준편차는 1.1)에서 청산, 그리고 이후 진입없음.
-날이 바뀌어 피봇포인트가 상승해서 가격이 위의 조건에 걸려도 모두 청산.
5. 피봇포인트에 진입한 이후에 가격이 위로 가면(+표준편차1) 시스템 4가 실행되고 아래로 가면(-표준편차)시스템 3이 실행되도록 코딩을 짤 수 있을까요?
답변 1
예스스탁 예스스탁 답변
2017-10-26 10:52:51
안녕하세요
예스스탁입니다.
1
input : aa(350),bb(351),cc(349);
if data2(C==aa or crossup(C,aa) or CrossDown(c,aa)) Then
buy();
if MarketPosition == 1 Then{
if data2(C >= bb) Then
exitlong();
if data2(C <= CC) Then
exitlong();
}
2
진입이 이전 진입가대비 1%입니다 전체포지션의 손익이 아닙니다
전체포지션이면 평단가를 기준으로 할수밖에 없습니다.
두번째 진입부터 LatestEntryPrice(0)를 AvgEntryPrice로 변경하시면 됩니다.
청산도 현재는 첫진입 기준입니다, 전체수량이면 평단가로 변경하시면 됩니다.
3번.4번
피봇포인트 표준편차가 어떤 값인지 모르겠습니다.
피봇 지지선과 저항선으로 대체해서 작성해 드립니다.
별도로 피봇포인트 표준편차 값만 대체하시면 됩니다.
피라미딩은 다른진입신호만 허용으로 설정하고 적용하시면 됩니다.
3
input : MM(10000000);
Var : Pivot(0),R1(0),R2(0),R3(0),S1(0),S2(0),S3(0),Lossprice(0),T(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1); #피봇+표준편차*1
R2 = Pivot+DayHigh(1)-DayLow(1); #피봇+표준편차*2
R3 = dayhigh(1)+2*(Pivot-daylow(1)); #피봇+표준편차*3
S1 = 2*Pivot-DayHigh(1); #피봇-표준편차*1
S2 = Pivot-DayHigh(1)+DayLow(1); #피봇-표준편차*2
S3 = daylow(1)-2*(dayhigh(1)-Pivot); #피봇-표준편차*3
if MarketPosition == 0 and
(C == Pivot or crossup(c,pivot) or CrossDown(c,pivot)) Then
buy("b1",OnClose,def,floor((MM*0.3)/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 Then
buy("b2",atlimit,S1,floor((MM*0.6)/C));
if MaxEntries == 2 Then
buy("b3",atlimit,S2,floor((MM*1.0)/C));
ExitLong("bp",atlimit,AvgEntryPrice*1.03);
if MaxEntries == 3 then
ExitLong("bl",AtStop,AvgEntryPrice*0.98);
}
4
input : MM(10000000);
Var : Pivot(0),R1(0),R2(0),R3(0),S1(0),S2(0),S3(0),Lossprice(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1); #피봇+표준편차*1
R2 = Pivot+DayHigh(1)-DayLow(1); #피봇+표준편차*2
R3 = dayhigh(1)+2*(Pivot-daylow(1)); #피봇+표준편차*3
S1 = 2*Pivot-DayHigh(1); #피봇-표준편차*1
S2 = Pivot-DayHigh(1)+DayLow(1); #피봇-표준편차*2
S3 = daylow(1)-2*(dayhigh(1)-Pivot); #피봇-표준편차*3
if MarketPosition == 0 and (C == Pivot or crossup(c,pivot) or CrossDown(c,pivot)) Then
buy("b1",OnClose,def,floor((MM*1.0)/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 Then
buy("b2",AtStop,R1,floor((MM*0.5)/C));
if MaxEntries == 2 Then
buy("b3",AtStop,R2,floor((MM*0.25)/C));
if MaxEntries == 3 Then
buy("b4",AtStop,R3,floor((MM*0.12)/C));
#진입횟수별 청산값 지정
if MaxEntries == 1 then
Lossprice = EntryPrice*0.97;
if MaxEntries == 2 then
Lossprice = pivot;
if MaxEntries == 3 then
Lossprice = S1;
if MaxEntries == 4 then
Lossprice = S2;
ExitLong("bl",AtStop,Lossprice);
}
5
4번과 5번을 혼합하면 다른 부분은 큰 문제가 없지만
3번의 익절과 4번의 손절이 모호해 지게 됩니다.
1차만 진입 후 2차 진입하기 전에는 방향을 판단할 뚜렷한 근거가 없습니다.
하락방향 2차 진입가격이 4번의 손절보다 작거나
상승방향 2차 진입가격이 3번의 익절보다 크면
2차 진입전 청산되게 됩니다.
아래는 3번과 4번 혼합식입니다.
input : MM(10000000);
Var : Pivot(0),R1(0),R2(0),R3(0),S1(0),S2(0),S3(0),Lossprice(0),T(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1); #피봇+표준편차*1
R2 = Pivot+DayHigh(1)-DayLow(1); #피봇+표준편차*2
R3 = dayhigh(1)+2*(Pivot-daylow(1)); #피봇+표준편차*3
S1 = 2*Pivot-DayHigh(1); #피봇-표준편차*1
S2 = Pivot-DayHigh(1)+DayLow(1); #피봇-표준편차*2
S3 = daylow(1)-2*(dayhigh(1)-Pivot); #피봇-표준편차*3
if MarketPosition == 0 and
(C == Pivot or crossup(c,pivot) or CrossDown(c,pivot)) Then
buy("b1",OnClose,def,floor((MM*1.0)/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 Then
buy("b2up",AtStop,R1,floor((MM*0.5)/C));
if MaxEntries == 1 Then
buy("b2dn",atlimit,S1,floor((MM*0.6/C)));
if CurrentContracts > CurrentContracts[1] and MaxEntries == 2 Then{
if LatestEntryName(0) == "b2up" Then
T = 1;
if LatestEntryName(0) == "b2dn" Then
T = -1;
}
if T >= 0 then{
if MaxEntries == 2 Then
buy("b3up",AtStop,R2,floor((MM*0.25)/C));
if MaxEntries == 3 Then
buy("b4up",AtStop,R3,floor((MM*0.12)/C));
#진입횟수별 청산값 지정
if MaxEntries == 1 then
Lossprice = EntryPrice*0.97;
if MaxEntries == 2 then
Lossprice = pivot;
if MaxEntries == 3 then
Lossprice = S1;
if MaxEntries == 4 then
Lossprice = S2;
}
ExitLong("bUploss",AtStop,Lossprice);
if T <= 0 then{
if MaxEntries == 2 Then
buy("b3dn",atlimit,S2,floor((MM*1.2/C)));
if MaxEntries == 3 then
ExitLong("bl",AtStop,AvgEntryPrice*0.98);
}
ExitLong("bP",atlimit,AvgEntryPrice*1.03);
}
Else
T = 0;
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것저것 문의드립니다.
> 아직도 알쏭달쏭한 것 투성이지만 요즘은 신호 내서 확인해보기도 하고 몇개 모의로 실제 써먹기도 하네요. 다만 몇몇 숫자들 변수로 바꾸는 것 외에 응용은 잘 안되고 있습니다. 매번 감사합니다.
1. 시스템
참조데이터가 특정가격(변수a)이 되면(상향돌파 or 하향돌파 or ==) 매수
참조데이터가 특정가격(변수b)이 되면 익절
참조데이터가 특정가격(변수c)이 되면 손절
2. 55195 재질문
input : 설정가(10000);
if MarketPosition == 0 and (Crossup(c,설정가) or CrossDown(c,설정가)) Then
buy("b1");
if MarketPosition == 1 Then{
ExitLong("bp",atlimit,EntryPrice*1.04);
if MaxEntries == 1 then
buy("b2",atlimit,LatestEntryPrice(0)*0.99 + (PriceScale*1+LatestEntryPrice(0)*0.0036));
if MaxEntries == 2 then
buy("b3",atlimit,LatestEntryPrice(0)*0.99 + (PriceScale*1+LatestEntryPrice(0)*0.0036));
if MaxEntries == 3 Then
ExitLong("bl",AtStop,EntryPrice*0.97);
}
55195 2번 질문해서 답 얻었던 건데요. 원질문은 아래와 같은데, 코딩은 최근진입가격에서 -1%+슬리피지+비용이 되면 자동진입하는 코딩같습니다. 1차 포지션의 손실률을 -1%로 만들 수 있도록 물을 타려고 한 내용인데요. 이대로 하면 2차 진입 후 전체 포지션이 손실률 -1%가 되나요? 헷갈려서 질문드립니다.
{1차 비용(위의 설정 슬리피지+설정 수수료)+ 1차 포지션의 손실률}을 -1%(변수4)로 만들수 있도록 진입
(== 1차포지션 손실률이 -2%라면 2차진입후 전체포지션 손실률은 -1%가 되도록)
3. 시스템
-피봇포인트
-피봇포인트 표준편차
1차진입
피봇포인트 도달하면(상향or하향or==) 진입, 투자금액 100가운데 30
2차진입
(피봇포인트 - 표준편차 1)에 가격이 도달하면 투자금액 100가운데 60
3차진입
(피봇포인트 - 표준편차 2)에 가격이 도달하면 투자금액 100가운데 120
청산
-1차든 2차든 3차든 전체 포지션의 수익률이 3%에 도달하면 일괄청산
-3차까지 진입후 포지션 손실률이 2%에 도달하는 순간 청산
4. 시스템
-피봇포인트
-피봇포인트 표준편차
1차진입
피봇포인트 도달하면(상향or하향or==) 진입, 투자금액 100가운데 100
2차진입
(피봇포인트 + 표준편차 1)에 도달하면 투자금액 100의 50 진입
3차진입
(피봇포인트 + 표준편차 2)에 가격이 도달하면 투자금액 100가운데 25
4차진입
(피봇포인트 + 표준편차 3)에 가격이 도달하면 투자금액 100가운데 12
청산
-1차에선 손실률이 -3%에 도달하면 청산 이후 진입 없음
-2·3·4차에선 포지션이 이전 진입포인트+표준편차 0.1에 도달하면 청산, 이후 진입 없음. 예를 들어 2차포지션에선 1차진입가+0.1표준편차되는 곳에서 전체포지션 청산, 이후 진입 없음. 3차포지션에선 2차진입가+표준편차0.1(표준편차는 1.1)에서 청산, 그리고 이후 진입없음.
-날이 바뀌어 피봇포인트가 상승해서 가격이 위의 조건에 걸려도 모두 청산.
5. 피봇포인트에 진입한 이후에 가격이 위로 가면(+표준편차1) 시스템 4가 실행되고 아래로 가면(-표준편차)시스템 3이 실행되도록 코딩을 짤 수 있을까요?
다음글
이전글