답변완료
문의드립니다.
늘 고맙습니다.
복많이 받으실겁니다.
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
799
글번호 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
660
글번호 179086
시스템
답변완료
키움 신호인데 예스로부탁드립니다
M10 = ma(C, 10);
M = Macd(12, 26);
Ms = eavg(M, 9);
Dp = Diplus(14);
Dm = DiMinus(14);
S = StochasticsSlow(12, 5);
CC = CCi(9);
SR = ((RSI(14)- lowest(RSI(14),7)) / (highest(RSI(14),7)-(lowest(RSI(14),7))))*-1;
R = ROC(12);
M_b = BarsSince(H>M10 && C==O && C<M10);
D_b = BarsSince(CrossUP(Dp, Dm) && Dp<=30);
Macd_b = BarsSince(CrossUP(M, Ms));
S_b = BarsSince(CrossUP(S, 20));
CC_b = BarsSince(CrossUP(CC, 0));
SR_b = BarsSince(SR==-1 && SR(1)!=-1);
R_b = BarsSince(CrossUP(R, 0));
조건 =
M_b > Max(D_b, Macd_b) &&
Min(D_b, Macd_b) > Max(S_b, CC_b, SR_b) &&
Min(S_b, CC_b, SR_b) > R_b;
조건 && !조건(1)
강조수식도 함께 부탁드릴게요
감사합니다
고맙습니다
2024-05-01
893
글번호 179085
종목검색
답변완료
검색식 부탁드립니다. _(_ _)_
도와주심에 감사드립니다._(__)_
아래의 수식에 해당하는 기준봉이 종가상 1봉전 30봉이내에 발생하고 29~ 1봉전이내에에서역시 종가상 엔벨로프(20,10)지지선을 이탈하고 0봉전에서 엔벨로프선을 돌파하는 종목 검색식을 부탁드립니다.
var : Month(0), MOpen(0), 중심(0),PreMC(0), PreMO(0);
Month = Floor(date/100);
if Month != Month[1] Then {
PreMC = C[1];
PreMO = MOpen;
MOpen = O ;
}
중심 = ((PreMC + PreMO)/2 + MOpen)/2;
if CrossUp(C, 중심) Then Find(1);
2024-05-01
698
글번호 179081
종목검색