답변완료
수식에 어려움이 많습니다 도와주세요!!!!
수고하십니다~~~
기존에는 영웅문을 사용하다가 지금은
하이투자증권의 예스트레이더를 이용하고 있습니다
영웅문과 다른점이 많아서 많이 헤매고 있습니다
많은 도움 부탁드립니다
아래는 영웅문에서의 신호발생 수식입니다
S=sum(1);
M5=ma((H+L+C)/3, 기간1);
M20=ma((H+L+C)/3, 기간2);
M60=ma((H+L+C)/3, 기간3);
상승전환=M5>M5(1) && M5(1)<M5(2) && M5(2)<M5(3);
하락전환=M5<M5(1) && M5(1)>M5(2) && M5(2)>M5(3);
상전1=Valuewhen(1,상승전환,S);
상전2=Valuewhen(2,상승전환,S);
상전3=Valuewhen(3,상승전환,S);
상전4=Valuewhen(4,상승전환,S);
상승1=Valuewhen(1,상승전환,M5(1));
상승2=Valuewhen(2,상승전환,M5(1));
상승3=Valuewhen(3,상승전환,M5(1));
상승4=Valuewhen(4,상승전환,M5(1));
하전1=Valuewhen(1,하락전환,S);
하전2=Valuewhen(2,하락전환,S);
하락1=Valuewhen(1,하락전환,M5(1));
하락2=Valuewhen(2,하락전환,M5(1));
단기=Valuewhen(1,상승전환,M5(1));
중기=Valuewhen(1,상승전환,M20(1));
장기=Valuewhen(1,상승전환,M60(1));
순서=상전4<상전3 && 상전3<하전1 && 하전1<상전2 && 상전2<상전1;
높이=상승4<상승3 && 상승3<상승2 && 상승2*(1-하락률)>=상승1;
이평=단기<중기 && 중기<장기;
진입=순서 && 높이 && 이평 && Crossup(C,하락1);
진입(1)
지표변수
기간1=5
기간2=20
기간3=60
하락률=0.01 을 넣었습니다
첨부된 그림과 함께 보시고 도움 부탁드립니다
2022-05-23
1609
글번호 159180
시스템
답변완료
[질문; 77224번] 에 대한 추가 질문 드립니다.
질문사항중 77224번에 대한 추가 질문이 있어서 문의 드립니다.
답변자료의 수식을 그데로 복사해서 넣으니까 10회 이후에 분할 매수되는 부분이
매도가 안되고 계속 보유하게 되어 있어서 아래 수식과 같이 //// 체크 부분의 위치에 수식을 추가하여 전량 매도가 가능하도록 하여 실행은 잘 되어 문제는 없어 보이는데,
1. 첨부한 캡쳐 사진 처럼 통합챠트에 bx3가 안나와도 될 위치에서 다른 종목들도 그렇고 bx1의 신호가 나올때 bx3가 섞여서 나옵니다.(어떤종목은 10회이하 분할 매수시에도 bx3가나오고, 어떤종목은 10회 이하에서는 bx1만 나올 때도 있고 그렇습니다.
해결 방법과 이유가 궁굼합니다.
2. 2번째로 첨부한 캡쳐 사진처럼 위의 1번 질문과 같이 bx3가 안나와야 할 위치에서 나올때는 거래내역에 거래수량이 0.000000 이런식으로 표기가 되는데 이것 또한 위의 1번과 같이 해결 방법을 알려 주시면 감사하겠습니다.
------------------------------------------------------------------------------------
var : AE1(0),Vol1(0),sum1(0),sum2(0),Vol2(0),AE2(0),Vol3(0),AE3(0);
var : Xcond1(False),Xcond2(False),Xcond3(False);
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "bx1" Then
Xcond1 = true;
if LatestExitName(0) == "bx2" Then
Xcond2 = true;
if LatestExitName(0) == "bx3" Then
Xcond3 = true;
}
if MaxEntries <= 10 Then
{
AE1 = AvgEntryPrice;
vol1 = CurrentContracts;
}
if Xcond1 == False and Vol1 > 0 Then
ExitLong("bx1",AtLimit,AE1*원하는_평단가요율,"",vol1,1);
if MaxEntries >= 9 and MaxEntries <= 11 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
sum1 = sum1 + (CurrentContracts-CurrentContracts[1])*LatestEntryPrice(0);
sum2 = sum2 + (CurrentContracts-CurrentContracts[1]);
AE2 = sum1/sum2;
}
}
if MaxEntries >= 11 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
Vol2 = Vol2 + (CurrentContracts-CurrentContracts[1]);
}
if Xcond2 == false Then
ExitLong("bx2",AtLimit,AE2*원하는_평단가요율,"",vol2,1);
}
///////////////////////////////////////////////////////////////////////////
if MaxEntries <= 10 and MaxEntries <= 19 Then
{
AE3 = AvgEntryPrice;
vol3 = CurrentContracts;
}
if Xcond3 == False and Vol3 > 0 Then
ExitLong("bx3",AtLimit,AE3*원하는_평단가요율,"",vol3,1);
/////////////////////////////////////////////////////////////////////////////
}
Else
{
AE1 = 0;
vol1 = 0;
sum1 = 0;
sum2 = 0;
vol2 = 0;
AE2 = 0;
AE3 = 0;
vol3 = 0;
Xcond1 = False;
Xcond2 = False;
Xcond3 = False;
}
2022-05-23
1109
글번호 159178
시스템
답변완료
피보나치 조정대 임의의 기준점부터 표시
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0),D1(0),T1(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0);
HH = DayHigh;
LL = daylow;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
if Bdate != Bdate[1] Then
{
D1 = sDate;
T1 = sTime;
TL1 = TL_New(D1,T1,HH,NextBarSdate,NextBarStime,HH);
TL2 = TL_New(D1,T1,var1,NextBarSdate,NextBarStime,var1);
TL3 = TL_New(D1,T1,var2,NextBarSdate,NextBarStime,var2);
TL4 = TL_New(D1,T1,var3,NextBarSdate,NextBarStime,var3);
TL5 = TL_New(D1,T1,var4,NextBarSdate,NextBarStime,var4);
TL6 = TL_New(D1,T1,var5,NextBarSdate,NextBarStime,var5);
TL7 = TL_New(D1,T1,LL,NextBarSdate,NextBarStime,LL);
#굵기
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,4);
TL_SetSize(TL5,1);
TL_SetSize(TL6,1);
TL_SetSize(TL7,1);
#색상
TL_SetColor(TL1,Green);
TL_SetColor(TL2,Cyan);
TL_SetColor(TL3,Red);
TL_SetColor(TL4,Pink);
TL_SetColor(TL5,Blue);
TL_SetColor(TL6,Cyan);
TL_SetColor(TL7,Green);
}
Else
{
TL_SetBegin(TL1,D1,T1,HH);
TL_SetBegin(TL2,D1,T1,var1);
TL_SetBegin(TL3,D1,T1,Var2);
TL_SetBegin(TL4,D1,T1,Var3);
TL_SetBegin(TL5,D1,T1,Var4);
TL_SetBegin(TL6,D1,T1,var5);
TL_SetBegin(TL7,D1,T1,LL);
TL_SetEnd(TL1,Sdate,Stime,HH);
TL_SetEnd(TL2,Sdate,Stime,var1);
TL_SetEnd(TL3,Sdate,Stime,Var2);
TL_SetEnd(TL4,Sdate,Stime,Var3);
TL_SetEnd(TL5,Sdate,Stime,Var4);
TL_SetEnd(TL6,Sdate,Stime,var5);
TL_SetEnd(TL7,Sdate,Stime,LL);
}
반등파가 아닌 횡보 파동이 생길 때에는 일중 최고점 최저점 기준의 피보나치 조정대가 아닌 새로운 피보나치 조정대를 살펴봐야 해서,
장중에 임의의 어느 한 지점을 선택해서 숫자를 기입하거나 클릭하거나 안되면 최저점이나 최고점을 기준으로 그 지점부터 상승하면 위로,하락하면 아래로 선이 꺾이면서 벌어지지 않고,고저에 따라 수평 이동하면서 첫 라인도 같이 평행선으로 넓어지게 하는 조정대 부탁합니다.
숫자를 바뀌주면 기존 조정대 없어지고 새로 다시 시작되면 더욱 좋겠습니다.
여러번 감사합니다.
2022-05-23
1264
글번호 159177
지표
답변완료
청산조건 2가지로 운용 문의
언제나 감사드립니다.
진입조건에 따라 청산식을 다르게 적용하는 수식좀 부탁드립니다
1.cond1(일반진입)충족시 매수, 매수청산은 SetStopTrailing(dn,ts,PercentStop) 적용
2.cond2:(강한진입: 앞에 10봉내에서 3회이상 수익거래 발생한 후 진입할 때는 추적청산(atr) 적용
/////////////////////
Input: DN(4),TS(10),이익횟수(3),AT(15),MUL(2);
var : cnt(0),이익횟수(0);
var : cond1(),cond2();//??
value1 = ma(C, 5);
value2 = ma(C, 20);
# 매수
If CrossUP(value1, value2) Then // 일반진입
{
Buy("b1");
}
If cond2 Then
{
Buy("b2");
}
cond2= ? // 강한진입(앞에 10봉내에서 3회이상 이익발생후 진입)
##여기서 성능보고 거래내역을 보면 SetStopTrailing 신호발생 청산후, 같은시간 같은가격으로 신규진입이 동시신호 발생할 때가 있는 데,이것 제어하는 방법도 좀 부탁드립니다.
settrailing 하는 순간에도 매수조건 충족이라 발생하는 것 같은 데요,이것 제어방법도
하나 부탁드립니다.지진입가!= 진입가[1]//진입시간!= ???
if bdate != bdate[1] Then{
이익횟수 = 0;
}
For cnt = 1 to 10
{
if positiionprofit(cnt) > 0 Then
이익횟수 = 이익횟수+1;
}
#???
if IsEntryName("b1") Then{
SetStopTrailing(dn,ts,PercentStop);
}
if IsEntryName("b2") Then{
exitlong("t청산",atstop,highest(High,barsSinceEntry)-atr(at)*mul);
}
2022-05-23
1192
글번호 159144
시스템
답변완료
사용수식인데요 추가할 사항 부탁드리겠습니다.
아래수식으로 해외선물 사용중에 있는데 청산 관련 수정하고 싶습니다.
1. 1회 매수진입할때와 다수 매수진입했을때도 같은 조건으로 청산하였는데요
if MarketPosition == 1 and var2 > 매도MFI값 Then
ExitLong("MFI청산",atlimit,AvgEntryPrice*1.001);
이수식으로요....
1회만 매수진입한것은 1% 상승 수익시 청산하는 것으로 하고 싶습니다.
ExitLong("MFI청산",atlimit,AvgEntryPrice*1.01);
2회이상 매수진입한것은 기존대로 하고요
ExitLong("MFI청산",atlimit,AvgEntryPrice*1.001);
수식 부탁드려요~~~
input : 매수MFI기간(25);
input : 매수MFI값(26);
input : 최대진입계약수(4),추가매수하락퍼센트(4),급락매수하락퍼센트(8);
input : 매도MFI기간(8);
input : 매도MFI값(82);
input : X(1000),Y(4);
var1 = MFi(매수MFI기간);
var2 = MFi(매도MFI기간);
if MarketPosition == 0 and var1 < 매수MFI값 and C < O and V > V[1] and C <= Highest(H,X)*(1-Y/100)and c<c[매수MFI기간/2] Then
Buy("b",OnClose,DEF,1);
if MarketPosition == 1 and MaxEntries < 최대진입계약수 Then
Buy("-4% 하락추가매수",AtLimit,LatestEntryPrice(0)*(1-추가매수하락퍼센트/100));
if MarketPosition == 1 Then
Buy("-8%하락 추가매수",AtLimit,LatestEntryPrice(0)*(1-급락매수하락퍼센트/100));
if MarketPosition == 1 and var2 > 매도MFI값 Then
ExitLong("MFI청산",atlimit,AvgEntryPrice*1.001);
if DayOfWeek(Bdate) == 5 and
((NextBarSdate != sDate and NextBarStime >= 050000) or
(NextBarSdate == sDate and NextBarStime >= 050000 and sTime < 050000)) Then
{
if C > AvgEntryPrice Then
ExitLong("주말 편히 청산",atlimit,AvgEntryPrice*1.01);
}
2022-05-23
1304
글번호 159139
시스템