답변완료
수식전환
항상 감사드립니다 하기 타사수식을 예스랭귀지로 변환부탁드립니다
A=LinearRegressionValue(C,기간,0);
A1=LinearRegressionValue(A,기간,0);
eq= A-A1;
zl =A+eq;//PLOT1
B = shift(C,-25);//PLOT2
AA=Valuewhen(1, crossup(b,zl), MAX(O,C));//PLOT3
2024-05-02
926
글번호 179111
지표
답변완료
수식부탁드립니다
기준봉: A.음봉 2회이상 연속발생된후 B.양봉1회이상 연속발생되고, 다시 C.음봉3회이상
연속발생된 캔들. ABC순서로 발생되고, 음봉은 O<=C, 양봉은 C>O 인경우로 설정.
A의 음봉 최고시가와 최저종가간의 변동율이 30%이상되어야하고, C의 음봉3회상
인지의 여부는 순수한 음봉3개이상 연속되거나 음봉사이에 2%미만의 양봉도
음봉으로 카운팅하여야 한다. B의 양봉도 양봉사이 2%미만 음봉도 포함한다
1.(1) 기준봉 발생후 바로 첫번째 양봉 발생시의 종목검색 수식
(2) 단, B의 양봉이 한개이상 발생되고, 그 양봉중 가장 낮은 시가를 C의
음봉 중 종가상으로 하향이탈하는 경우에는 음봉뒤 첫번째 양봉에서 검색되는게 아니라
첫 양봉1회이상 발생된후 다시 음봉1회이상 연속발생된후의
그다음 양봉에서 검색되어야 한다.
(1) 음봉2회이상 + 양봉1회이상 + 음봉3회이상 + 양봉검색 <양봉시가 미이랄시의 검색>
(2) 음봉2회이상 + 양봉1회이상 + 음봉3회이상 + 양봉1회이상 +음봉1회이상 +양봉검색
<양봉시가를 음봉종가상으로 하향이탈시의 검색조건>
2. 월봉기준으로 기준봉 발생후에 일봉상으로 월시가하향이탈한 일봉캔들이 나온후에
일봉기준으로 월시가를 돌파하는 양봉출현시의 신호와 종목검색수식
3. 위의 기준봉조건이 <음봉 5회이상 연속발생된후 양봉1회이상 연속발생되고, 다시
음봉2회이상 연속발생되고 다시 양음봉(양봉+음봉+양봉캔들)출현시의 종목검색수식
여기서 양음봉은 1개양봉+1개음봉+1개양봉캔들만 의미하는게 아니라 양봉이 또는
음봉이 연속된다면 1개의 양봉이나 음봉으로 판단해야 합니다.
2024-05-02
1031
글번호 179110
종목검색
답변완료
문의드립니다.
늘 고맙습니다.
복많이 받으실겁니다.
1. 위에 그림은 좌측 노란색에서 진입이 됐는데 우측상단 노란색에서 청산이 됐습니다.
# 의도했던 로직은 동그라미 부분에서 청산이었습니다.
# 며칠전 가르쳐주신 문장을 다시 적고 해석을 해보겠습니다. 오류수정 부탁드립니다.
# 아직 적어주신 문장도 해석능력이 부족합니다. 이해 부탁드립니다. 주석을 달아주시면 더욱 좋겠습니다.
if MarketPosition == 1 Then
{ #1 진입후 100캔들의 고점을 돌파했다면 Condition1에 참을 할당하고 var1에 진입이후 경과된 봉갯수 할당
if H > highest(H,100)[1] Then
{
Condition1 = true;
var1 = BarsSinceEntry;
}
#1이 참이고 60이평 이탈시 청산. *** 고점 돌파후 60이평 데드면 청산. 동그라미 두번째에서 청산되어야 됩니다..
if Condition1 == true Then #2
{
if CrossDown(c,ma(c,60)) Then
ExitLong("시험청산1");
}
#1이 참이고 20평 이탈시엔 20이평 이탈을 Value2에 할당하고, value1에는 진입이후 경과된 봉갯수 할당하고
if CrossDown(c,ma(C,20)) Then
{
Value2 = Value2+1;
value1 = BarsSinceEntry;
*** 원래 의도 : 20이평 데드후 60이평을 데드 하지 않고 다시 고점을 돌파한다면 이후 20이평 데드시 청산한다.
# *** 여기 문장은 잘 해석이 안됩니다. 20이평 데드가 2번이상이고 20이평 데드때 진입이후 봉갯수가 고점돌파때의 진입이후 봉갯수보다 적고(많아야 되는 것 아닌지요?), var1과 value2를 비교하는 것은 무슨 의미인지 잘 모르겠습니다.
if Value2 >= 2 and value1[1] < var1 and var1 < Value2 Then
ExitLong("시험청산2");
}
2. 가르쳐주시는 거에 비해 너무 진도가 못나가고 있습니다.
몇 줄 안되는데도 도저히 해결을 못해서 또 올립니다.
똑같은 방법으로 만든거 같은데 매도는 원하는 자리에서 신호가 나오는데요.
매수는 이상하게도 하나가 영 이상한데서 신호가 나옵니다.
이것저것 바꿔봐도 그자리만 고집하네요.
# 일이 발생되는 순서대로 적었습니다. 인덱스는 제대로 쓰고 있는건지 모르겠습니다.
코드 흐름에 뭐가 잘못된건가요?
var:HH(0),LL(0),진폭(0);
HH = highest(H,P);
LL = lowest(L,P);
진폭=HH-LL;
f 이평500>이평360 && 이평360>이평120 &&
CrossDown(이평60,이평360)
Then
{
B1=1;
Bi1=Index;
}
if b1>=1 and CrossUp(이평3,이평500) Then
b1=0;
if b1==1 && bi1>0 && Index>bi1+2 && L>=Lowest(L,100)[1] Then
{
b1=2;
bi2=Index;
}
if b1==2 && bi2>0 && Index>bi2+2 && CrossUp(이평3,이평60) Then
{
b1=3;
Bi3=Index;
b1저점=진폭*0.1+LL;
}
{
if b1==3 && bi3>0 && Index<bi3+500 && Condition1 == False Then
Buy("이유모르는매수",AtLimit,b1저점);
}
3. cond에 "쌍봉조건"을 저장해놓고 사용하고 싶습니다. for문이나 index 이용해서 만들어보려는데 아직 어렵네요.
쌍봉조건=조건1 and 조건2 and 조건3 and 조건4;
현재봉으로부터 과거봉으로 돌아가면서 써보면요.
조건1. 현재캔들은 60이평 아래에 있다.
조건2. 당일고점을 찍었다.
조건3. 캔들의 저가가 60이평을 2회이상 이탈했다.
조건4. 당일고점을 찍었다.
# 아래의 식이 맞나요? 맞더라도 뭔가 추가해줘야 될 게 있을 거 같고 어설프네요.
var:cnt(0),고점돌파위치(0),데드위치60(0),이전고점돌파위치(0),쌍봉1(false);
쌍봉1 =
고점돌파위치=-1;
for cnt=0 to 100
{
if H[cnt]==highest(h,100) then{
고점돌파위치=cnt;
cnt=999;
}
}
데드위치60 = -1;
for cnt=고점돌파위치 to 100
{
if countif(crossdown(L,이평60),???)>1 then { # 저가가 2회이상 60이평 아래로 내려갔었다?????
데드위치60 = cnt;
cnt=999;
}
}
이전고점돌파위치=-1;
for cnt=데드위치60 to 100
{
if if H[cnt]==highest(h,100) then{
이전고점돌파위치=cnt;
이전고점돌파봉=C; #60이평 찍으러 내려오기전 최고점 찍은 캔들정보 저장.
cnt=999;
}
}
if 고점돌파위치<21 and # 고점찍은 자리가 현재봉전 20캔들내에 있고
데드위치60 < 고점돌파위치+20 and #60이평 데드난 자리가 고점찍은 자리로부터 20캔들내에 있고
이전고점돌파위치<데드위치60+20 then #60이평 데드 20캔들전내에 고점돌파가 있었다면
# 위 조건들을 만족하고 현재 종가가 60이평 아래에 있다면 쌍봉만족.
if C<이평60 then
쌍봉1 = true;
4. 차트에 글상자, 중요표시 등을 해놓고 다시 로그인을 하게 되면 그게 남아있지 않습니다.
다른 이름으로 저장하기를 하고 다시 불러와도 삭제되어 나오는데요. 그대로 불러올 방법이 있나요?
2024-05-03
810
글번호 179094
시스템
답변완료
수식추가
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0),T(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
if UpWave[1] then
T = 1;
else if DnWave[1] then
T = -1;
end;
Input : BBP(20), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(BBP,MultiD);
BBdn = BollBandDown(BBP,MultiD);
if CrossDown(C,BBup) and t == -1 Then
sell();
if crossup(C,BBdn) and t == 1 Then
buy();
안녕하세요
위식에추가 부탁드림니다.
hp선추가
매수 기존식 + hp선위에서는 매수.
손절청산 hp선 하향돌파시.
매도 기존식 + hp선아래에서 매도.
손절청산 hp선 상향돌파시.
첨부hp선 자유게시판 2071
2024-05-02
674
글번호 179086
시스템