Expert Advisors를 테스트할 때: Exp_TEMA.mq5, "Creating Expert Advisor that trades on different instrument" , Told[] Tnew[1] 표현식은 다음 값을 얻습니다. Told[] 표현식을 평가할 수 없습니다. Tnew[1] 잘못된 배열 범위입니다.
및 My_First_EA.mq5, "초보자를 위한 MQL5 Expert Advisors 작성에 대한 단계별 가이드" 기사, 표현식 New_Time[1] 값을 가져옵니다: 잘못된 배열 범위
표현식의 값을 평가할 수 없으며 유효하지 않은 배열 범위는 무엇을 의미하며 Expert Advisors의 결과에 어떤 영향을 줍니까?
if (Sell_Signal) { mrequest.price = NormalizeDouble (latest_price.bid, _Digits ); // последняя цена Bid mrequest.sl = NormalizeDouble (latest_price.bid + STP* _Point , _Digits ); // Stop Loss mrequest.tp = NormalizeDouble (latest_price.bid - TKP* _Point , _Digits ); // Take Profit mrequest.type= ORDER_TYPE_SELL ; // ордер на продажу //--- отсылаем ордер OrderSend (mrequest,mresult); }
결과는 다음 그림입니다.
이러한 조건으로 거래가 이루어졌는지 확인하는 방법은 무엇입니까? 작동하지 않습니다.
// в этом цикле поочередно перебираем все открытые позиции for (i= 0 ;i< PositionsTotal ();i++) { // выбираем позиции только по "нашему" инструменту if ( Symbol ()== PositionGetSymbol (i)) ... }
이 코드 이상은 닫힐 때까지 위치 를 열지 않지만 조건이 충족되면 다음 막대에서 닫은 후 다시 열립니다. 나는 이것을 다음과 같이 구현했다.
bool BuyOne = true, SellOne = true; // только один ордер. глобальные переменные
if (Buy_Signal && // покупаем если есть сигнал на покупку PositionSelect ( Symbol ())==false && // ордер закрыт BuyOne) // при условии на покупку ставим только один ордер { mrequest.type = ORDER_TYPE_BUY ; // ордер на покупку mrequest.price = NormalizeDouble (latest_price.ask, _Digits ); // последняя цена ask mrequest.sl = NormalizeDouble (latest_price.ask - STP* _Point , _Digits ); // Stop Loss mrequest.tp = NormalizeDouble (latest_price.ask + TKP* _Point , _Digits ); // Take Profit OrderSend (mrequest,mresult); // отсылаем ордер BuyOne = false; // на покупку только один ордер SellOne = true; // меняем флаг одного ордера на продажу }
고맙습니다! 그는 모든 소원을 고려했습니다. 이제 모든 것이 작동합니다. 고문이 게시를 위해 게시했습니다. 코드를 변경할 수도 있습니다. 유혹에는 제한이 없습니다)))
Expert Advisors를 테스트할 때:
Exp_TEMA.mq5, "Creating Expert Advisor that trades on different instrument" , Told[] Tnew[1] 표현식은 다음 값을 얻습니다.
Told[] 표현식을 평가할 수 없습니다.
Tnew[1] 잘못된 배열 범위입니다.
및 My_First_EA.mq5, "초보자를 위한 MQL5 Expert Advisors 작성에 대한 단계별 가이드" 기사, 표현식
New_Time[1] 값을 가져옵니다: 잘못된 배열 범위
표현식의 값을 평가할 수 없으며 유효하지 않은 배열 범위는 무엇을 의미하며 Expert Advisors의 결과에 어떤 영향을 줍니까?
Told - 크기가 없는 빈 배열
Tnew[1] - 배열을 넘어 배열은 Tnew[1]로 설명되므로 인덱스가 0부터 시작하므로 해당 요소는 Tnew[0]으로만 액세스할 수 있습니다.
Told - 크기가 없는 빈 배열
Tnew[1] - 배열을 넘어 배열이 Tnew[1]로 설명되므로 인덱스가 0에서 시작하기 때문에 해당 요소는 Tnew[0]으로만 액세스할 수 있습니다.
조건별로 하나의 거래만 여는 방법을 알려주세요. 내 코드를 사용하여 터미널은 이 조건에 대해 여러 거래를 시작하지만 하나만 필요합니다.
결과는 다음 그림입니다.
이러한 조건으로 거래가 이루어졌는지 확인하는 방법은 무엇입니까? 작동하지 않습니다.
조건별로 하나의 거래만 여는 방법을 알려주세요. 내 코드를 사용하여 터미널은 이 조건에 대해 여러 거래를 시작하지만 하나만 필요합니다.
결과는 다음 그림입니다.
이러한 조건으로 거래가 이루어졌는지 확인하는 방법은 무엇입니까? 작동하지 않습니다.
그리고 PositionSelect 와 같은 멋진 작은 것이 있는 경우 검색을 주기로 정렬하려면 어떻게 해야 합니까?
관심 있는 악기의 위치만 체크하고, true가 반환되면 조용히 코냑을 마시고 시가를 피울 수 있습니다... :)
추신
그러나 내가 이해하는 바와 같이 PositionSelect 가 없는 PositionGetString 은 작동하지 않아야 합니다. 모든 열린 자세의 기호를 알 필요는 없겠죠?
그리고 PositionSelect 와 같은 멋진 작은 것이 있는 경우 검색을 주기로 정렬하려면 어떻게 해야 합니까?
관심 있는 악기의 위치만 체크하고, true가 반환되면 조용히 코냑을 마시고 시가를 피울 수 있습니다... :)
추신
그러나 내가 이해하는 바와 같이 PositionSelect 가 없는 PositionGetString 은 작동하지 않아야 합니다. 모든 열린 자세의 기호를 알 필요는 없겠죠?
이 코드는 오픈 포지션의 존재를 고려합니다:
그러나 Buy_Signal 조건이 충족되는 한 계속해서 포지션을 엽니다. Sell_Signal 조건이 발생하기 전에 Buy_Signal 포지션 개설을 중단해야 합니다. 다음과 같이 구현하려고 합니다.
가지 않는다.이 코드는 오픈 포지션의 존재를 고려합니다:
그러나 Buy_Signal 조건이 충족되는 한 계속해서 포지션을 엽니다. Sell_Signal 조건이 발생하기 전에 Buy_Signal 포지션 개설을 중단해야 합니다. 다음과 같이 구현하려고 합니다.
가지 않는다.왜 정확히 이 코드를 사용합니까? 크게 늘여도 내가 소개한 것과 닮지 않았습니다(일반적으로 모든 것이 맞는지 의심스럽습니다)
그리고 다음과 같이 입력해야 했습니다.
최악의 경우 모든 것이 블록으로 정리될 수 있습니다.
왜 정확히 이 코드를 사용합니까? 크게 늘여도 내가 소개한 것과 닮지 않았습니다(일반적으로 모든 것이 맞는지 의심스럽습니다)
그리고 다음과 같이 입력해야 했습니다.
최악의 경우 모든 것이 블록으로 정리될 수 있습니다.
이 코드 이상은 닫힐 때까지 위치 를 열지 않지만 조건이 충족되면 다음 막대에서 닫은 후 다시 열립니다. 나는 이것을 다음과 같이 구현했다.
고맙습니다! 그는 모든 소원을 고려했습니다. 이제 모든 것이 작동합니다. 고문이 게시를 위해 게시했습니다. 코드를 변경할 수도 있습니다. 유혹에는 제한이 없습니다)))