커뮤니티
문의드립니다
2016-05-16 15:56:03
103
글번호 98119
47731.. 작성 하여주신 수식 감사합니다.
현재 수식을 input식으로 바꾸어주셨으면 합니다.
그리고 손절이 되면 진입가격에 다시회복되면 다시 진입이 되었으면 합니다.
한번에 문의를 드려야하는데....ㅠㅠ
수고스럽지만 다시부탁 드리겠습니다.
답변 1
예스스탁 예스스탁 답변
2016-05-17 12:55:11
안녕하세요
예스스탁입니다.
현재 수식이 매수진입이 크로스다운 시점이므로
손절은 data2의 가격이 data2의 진입시점값대비 5틱으로 되어 있고
익절은 data2의 가격이 data2의 진입시점값대비 -40,-50-70으로 되어 있습니다.
위와 반대로 손절이 진입시점대비 하락, 익절이 상승이면
2번식 이용하시면 됩니다.
1번
input : 진입시작횟수(3),진입끝횟수(7),손절틱수(5),수익틱수1(40),수익틱수2(50),수익틱수3(70);
var : dncnt(0,data2),D2(0,data1);
D2 = data2(c);
if data2(date != date[1]) Then
dncnt = 0;
if data2(CrossDown(c,openD(0))) Then{
dncnt = dncnt +1;
if dncnt >= 진입시작횟수 and dncnt <= 진입끝횟수 Then
buy("b",OnClose,def,2);
}
#손절(BL신호)후 진입가격에 다시 도달하면 재진입
if MarketPosition == 0 and dncnt >= 진입시작횟수 and IsExitName("BL",1) == true Then{
if NextBarOpen < EntryPrice(1) then
buy("bb",AtStop,EntryPrice(1));
else
buy("bb.",Atlimit,EntryPrice(1));
}
if MarketPosition == 1 Then{
if D2 >= D2[BarsSinceEntry]+data2(PriceScale*손절틱수) Then
exitlong("BL");
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP1" Then
Condition1 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP2" Then
Condition2 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP3" Then
Condition3 = true;
if Condition1 == false and MaxEntries >= 1 and D2 <= D2[BarsSinceEntry]-data2(PriceScale*수익틱수1) Then
exitlong("BP1",OnClose,def,"",2,1);
if Condition2 == false and MaxEntries >= 2 and D2 <= D2[BarsSinceEntry]-data2(PriceScale*수익틱수2) Then
exitlong("BP2",OnClose,def,"",2,1);
if Condition3 == false and MaxEntries >= 3 and D2 <= D2[BarsSinceEntry]-data2(PriceScale*수익틱수3) Then
exitlong("BP3");
}
Else{
Condition1 = false;
Condition2 = false;
Condition3 = false;
}
2번
input : 진입시작횟수(3),진입끝횟수(7),손절틱수(5),수익틱수1(40),수익틱수2(50),수익틱수3(70);
var : dncnt(0,data2),D2(0,data1);
D2 = data2(c);
if data2(date != date[1]) Then
dncnt = 0;
if data2(CrossDown(c,openD(0))) Then{
dncnt = dncnt +1;
if dncnt >= 진입시작횟수 and dncnt <= 진입끝횟수 Then
buy("b",OnClose,def,2);
}
#손절(BL신호)후 진입가격에 다시 도달하면 재진입
if MarketPosition == 0 and dncnt >= 진입시작횟수 and IsExitName("BL",1) == true Then{
if NextBarOpen < EntryPrice(1) then
buy("bb",AtStop,EntryPrice(1));
else
buy("bb.",Atlimit,EntryPrice(1));
}
if MarketPosition == 1 Then{
if D2 <= D2[BarsSinceEntry]-data2(PriceScale*손절틱수) Then
exitlong("BL");
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP1" Then
Condition1 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP2" Then
Condition2 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP3" Then
Condition3 = true;
if Condition1 == false and MaxEntries >= 1 and D2 >= D2[BarsSinceEntry]+data2(PriceScale*수익틱수1) Then
exitlong("BP1",OnClose,def,"",2,1);
if Condition2 == false and MaxEntries >= 2 and D2 >= D2[BarsSinceEntry]+data2(PriceScale*수익틱수2) Then
exitlong("BP2",OnClose,def,"",2,1);
if Condition3 == false and MaxEntries >= 3 and D2 >= D2[BarsSinceEntry]+data2(PriceScale*수익틱수3) Then
exitlong("BP3");
}
Else{
Condition1 = false;
Condition2 = false;
Condition3 = false;
}
즐거운 하루되세요
> leezard 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 47731.. 작성 하여주신 수식 감사합니다.
현재 수식을 input식으로 바꾸어주셨으면 합니다.
그리고 손절이 되면 진입가격에 다시회복되면 다시 진입이 되었으면 합니다.
한번에 문의를 드려야하는데....ㅠㅠ
수고스럽지만 다시부탁 드리겠습니다.
다음글
이전글