묻다! - 페이지 98

 

다시 도와주세요

안녕 모두,

나는 영원처럼 보이는 것을 위해 EA에서 일하고 있습니다. 도움을 주신 이 스레드의 모든 분들께 감사드립니다.

나는 이제 다시 당황하여 더 많은 도움을 구하고 있습니다. 우리 모두 알고 있듯이 MA에서 Stoch까지의 대부분의 교차 유형 신호는 이동이 끝날 때 여러 번 교차하기 때문에 잘 작동하지 않습니다.

내가 하려고 하는 것은 50선을 넘을 때 Stochastic RSI를 사용하는 것이지만 가격이 일정량의 핍(MinPips)만큼 고가 또는 저가를 통과한 경우에만 다음 막대에서만 사용합니다. 내 주요 문제는 십자가를 추적할 때 가격이 십자가 이후에 이어지는 막대의 MinPip에만 도달하지만 십자가는 같은 방향으로 유지되는 경우입니다.

나는 내가하려는 일을 보여주기 위해 사진을 첨부하려고합니다.

포인트 #1은 매도 교차점에 있지만 가격이 해당 막대의 저점을 결코 통과하지 않기 때문에 거래가 이루어지지 않습니다(사실, 저는 이전 거래가 활성 상태를 유지하기를 원합니다).

포인트 #2는 매수 교차점에 있지만 가격은 교차점 이후 4번째 막대의 고점을 지나고 그 시점에서 매수해야 합니다. 모든 이전 판매 주문 은 현재 종료되어야 합니다.

처음으로 사진을 첨부하는 것이기 때문에 이것이 효과가 있기를 바랍니다. 실례가 되었다면 미리 사과드립니다.

푸츠

파일:
 

추가 정보

다음은 CurrDir이 현재 방향이고 PrevDir이 이전 방향이므로 동일하지 않은 경우 십자가가 있는 프로그래밍입니다.

문제는 현재 막대에서 교차하지 않으면 CurrDir 및 PrevDir이 같아지고 ValHigh 또는 ValLow에 도달하는지 확인하기 위해 해당 막대를 지나치지 않는다는 것입니다.

도움을 주시면 감사하겠습니다.

푸츠

if(CurrDir != PrevDir)

{

if(CurrDir == 1)

{

ValHigh = iHigh(Symbol(),Timeframe2,1) + MinPips*Point;

if(Bid >= ValHigh)

{

return(1); //up

}

return (2);

}

if(CurrDir == 2)

{

ValLow = iLow(Symbol(),Timeframe2,1) - MinPips*Point;

if(Ask <= ValLow)

{

return(2);//down

}

return (1);

}

 

알아 냈어 ... 내 생각에는

나는 마침내 내 문제를 알아 냈다고 생각합니다. 지금이 거의 새벽 2시 30분인데 배고파서 내일 봐야겠다...

푸츠

 

MT4 내보내기 파일의 데이터 형식을 변경하는 방법이 있습니까?

ASCII.csv를 찾고 있지만 데이터가 다음 형식이어야 합니다.

1) 별도의 열(시간, 고가, 저가 및 종가만 필요)

2) 마지막 1000개의 막대에 대해서만

3) 순서를 반대로 합니다(마지막이 맨 위로).

4 ) 내 바탕 화면에 이미 있는 폴더에 저장

저를 도울 수 있는 누군가에게 미리 감사드립니다.

 

지표 추가 및 삭제

EA에 코드를 작성하여 거래 플랫폼 에 지표를 추가하거나 삭제할 수 있습니까 ???

데이브

 

주문 관리에 큰 어려움이 있습니다....

X:59에서 나의 간단한 EA 항목....하지만 같은 십자가에 여러 항목이 있습니다. 내 질문: 주문 시간 입력을 확인 하고 새 주문과 비교할 수 있습니까?

x:59에 크로스 1주문만 받고싶다....

누군가 나를 도울 수 있습니까?

 
metastock:
주문 관리에 큰 어려움이 있습니다....

X:59에서 나의 간단한 EA 항목....하지만 같은 십자가에 여러 항목이 있습니다. 내 질문: 주문 시간 입력을 확인하고 새 주문과 비교할 수 있습니까?

x:59에 크로스 1주문으로만 입장하고 싶어요....

누군가 나를 도울 수 있습니까?

이것은 내 솔루션입니다. 이것이 누군가를 도울 수 있기를 바랍니다 ......

//+----------------------------------------------- -------------------+

//| 시그널 비긴(진입) |

//+----------------------------------------------- -------------------+

if (Buy1_1 58 && check_buy==0 ) 주문 = SIGNAL_BUY;

if (Sell1_1 > Sell1_2 && Minute()>58 && check_sell==0 ) 주문 = SIGNAL_SELL;

if (분()==00) {check_buy=0;}

if (분()==00) {check_sell=0;}

//+----------------------------------------------- -------------------+

//| 신호 종료 |

//+----------------------------------------------- -------------------+

//구입하다

if (주문 == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (막대 != BarCount)))) {

//if(!IsTrade) {

// 여유 여백 확인

if (AccountFreeMargin() < (1000 * 랏)) {

Print("돈이 없습니다. Free Margin = ", AccountFreeMargin());

리턴(0);

}

if (StopLossMode) StopLossLevel = 묻기 - StopLoss * 포인트; 그렇지 않으면 StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = 묻기 + TakeProfit * 포인트; 그렇지 않으면 TakeProfitLevel = 0.0;

check_buy=1;

티켓 = OrderSend(Symbol(), OP_BUY, lot, Ask, Slippage, StopLossLevel, TakeProfitLevel, "구매 %W(#" + Magic_Number + ")", Magic_Number, 0, DodgerBlue);

if(티켓 > 0) {

if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES)) {

Print("구매 주문이 열렸습니다 : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} 또 다른 {

Print("구매 주문 열기 오류: ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = 막대;

리턴(0);

// }

}

//팔다

if (주문 == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (막대 != BarCount))) {

//if(!IsTrade) {

// 여유 여백 확인

if (AccountFreeMargin() < (1000 * 랏)) {

Print("돈이 없습니다. Free Margin = ", AccountFreeMargin());

리턴(0);

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * 포인트; 그렇지 않으면 StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = 입찰가 - TakeProfit * 포인트; 그렇지 않으면 TakeProfitLevel = 0.0;

check_sell=1;

티켓 = OrderSend(Symbol(), OP_SELL, 랏, Bid, Slippage, StopLossLevel, TakeProfitLevel, "판매 %W(#" + Magic_Number + ")", Magic_Number, 0, DeepPink);

if(티켓 > 0) {

if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES)) {

Print(" SELL 주문 이 열렸습니다 : ", OrderOpenPrice());

if (SignalMail) SendMail("[신호 경보]", "[" + Symbol() + "] " + DoubleToStr(입찰가, 숫자) + " 공개 매도");

} 또 다른 {

Print("판매 주문 열기 오류: ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = 막대;

리턴(0);

//}

}

if (!EachTickMode) BarCount = 막대;

리턴(0);

}

//+----------------------------------------------- -------------------+

 

메타스톡으로

check_buy 가 True가 되는 원인을 알 수 없습니다.

하나의 주문 개설로 제한하려면 입력하기 전에 다음을 사용할 수 있습니다.

if (OrdersTotal()==0)

빅비

 

코딩 지식 질문

언제 STATIC 변수를 사용하고 싶습니까? 어떤 문제를 해결할 수 있습니까?

언제 INIT() 섹션에 무언가를 넣고 싶습니까? 어떤 문제가 해결됩니까?

빅비

 

이것이 전에 요청되었는지 확실하지 않지만 EA에서 특정 가격으로 전후 +1 시간의 현재 시간 에 선을 긋는 방법이 있습니까?