MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1856

 

말하다. 질문을 정지시키십시오.

iOpen Ask 또는 Bid는 어떻게 계산됩니까?

 double DayOpenone = NormalizeDouble ( iOpen ( Symbol (), PERIOD_D1 , 0 ), Digits );

double DayOpentwo = NormalizeDouble(iOpen(Symbol(), PERIOD_D1, 1), Digits); 

문제는 오늘의 시가를 어제의 시가와 비교하는 것입니다. 분명히 스프레드 충돌이 나타난 다음 코드에서 추가 문제가 시작됩니다. 어떤 날 에는 iOpen 가격이 올바르지 않기 때문에 구매 또는 판매만 가능합니다.

 
Порт-моне тв iOpen Ask 또는 Bid는 어떻게 계산됩니까?

문제는 오늘의 시가를 어제의 시가와 비교하는 것입니다. 분명히 스프레드 충돌이 나타난 다음 코드에서 추가 문제가 시작됩니다. 어떤 날 에는 iOpen 가격이 올바르지 않기 때문에 구매 또는 판매만 가능합니다.

차트는 입찰 가격을 기반으로 합니다.

 

얘들아 제발 말해줘

나는 다중 통화 고문 을 작성하고 있으며 주문을 여는 것을 제외하고는 모든 것이 계획대로 작동합니다. 무엇이 잘못되었는지 알려주세요.

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( "Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= "Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         OrderSend ( "USDJPY" , OP_BUY, 0.1 , Bid1, 3 , NormalizeDouble ((Ask1+StopLoss*Point1), 2 ), NormalizeDouble ((Ask1-TakeProfit*Point1), 2 ), NULL , 0 , 0 , 0 );
        }

오류가 발생하지 않으며 주문을 열지 않습니다.

 
Sergey Dymov 통화 고문 을 작성하고 있으며 주문을 여는 것을 제외하고는 모든 것이 계획대로 작동합니다. 무엇이 잘못되었는지 알려주세요.

오류가 발생하지 않으며 주문을 열지 않습니다.

주문 보내기

반환 값

거래 서버가 주문에 할당한 티켓 번호를 반환하거나 실패할 경우 -1을 반환합니다. 오류 에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.

컴파일러도 Ordersend를 확인해야 한다고 씁니다.

구매는 Ask에서 이루어집니다. 그러나 미끄러짐이 스프레드보다 작지 않은 경우 Bid와 함께 작동할 수도 있으므로 이 버그에 대한 검색이 복잡해질 수 있습니다.

 

통화 고문 을 작성하고 있으며 주문을 여는 것을 제외하고는 모든 것이 계획대로 작동합니다. 무엇이 잘못되었는지 알려주세요.

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( " Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= " Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         OrderSend ( "USDJPY" , OP_BUY , 0.1 , Bid1, 3 , NormalizeDouble ((Ask1+StopLoss*Point1), 2 ), NormalizeDouble ((Ask1-TakeProfit*Point1), 2 ), NULL , 0 , 0 , 0 );
        }

오류가 발생하지 않으며 주문을 열지 않습니다.

오류가 어디에 있는지 알 수 있습니까?

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( "Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= "Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         int nDigits = ( int )MarketInfo( "USDJPY" , MODE_DIGITS);
         OrderSend ( "USDJPY" , OP_SELL , 0.1 , NormalizeDouble(Bid1, nDigits) , 3 , NormalizeDouble ((Ask1-StopLoss*Point1), nDigits ), NormalizeDouble ((Ask1+TakeProfit*Point1), nDigits ), NULL , magic , 0 , 0 );
        }

https://docs.mql4.com/ru/trading/ordersend

Примечание

시장가 주문(OP_SELL 또는 OP_BUY)을 열 때 가장 최근의 Bid(판매) 또는 Ask(구매) 가격만 시작 가격으로 사용할 수 있습니다. 현재 금융 상품이 아닌 다른 금융 상품에서 작업을 수행하는 경우 이 상품에 대한 최신 견적을 얻으려면 다음 기능을 사용하십시오.   시장 정보()   MODE_BID 또는 MODE_ASK 매개변수를 사용합니다.

계산되거나 정규화되지 않은 가격은 사용할 수 없습니다 . 요청한 공개 가격이 가격 피드에 없거나 요청한 가격이 소수점 이하 자릿수 에 따라 정규화되지 않은 경우 오류 129(ERR_INVALID_PRICE) 가 생성됩니다. 요청한 시가가 너무 오래되면 슬리피지 매개변수의 값에 관계없이 오류 138(ERR_REQUOTE)이 생성됩니다. 요청한 가격이 구식이지만 가격 흐름에 여전히 존재하는 경우 현재 가격이 가격+-슬리피지 범위 내에 있는 경우에만 현재 가격으로 주문이 열립니다.

...

로봇에게 고유한 마법을 설정하는 것도 바람직하다.

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
OrderSend - Торговые функции - Справочник MQL4
 
Mihail Matkovskij # :

시작 가격이 가격 피드 또는 요청 가격에 없습니다.   정규화되지 않은   ~에 따라   소수점 이하 자릿수와 함께 ,

내가 아는 한 Ask와 Bid는 이미 정상화되었습니다. 비슷한 질문이 이미 제기되었으며 모순은 없습니다.

마술에 대해 손절매와 이익을 숫자로 가져오는 것은 아마도 적절할 것입니다. 그러나 저자의 생각은 알려져 있지 않습니다.

 
Andrey Sokolov # :

내가 아는 한 Ask와 Bid는 이미 정상화되었습니다. 비슷한 질문이 이미 제기되었으며 모순은 없습니다.

마술에 대해 손절매와 이익을 숫자로 가져오는 것은 아마도 적절할 것입니다. 그러나 저자의 생각은 알려져 있지 않습니다.

내가 아는 한 문서에는 이에 대한 언급이 없습니다. 따라서 안전하게 플레이하는 것이 좋습니다. 확실히 악화되지 않습니다.

SL 및 TP에 대해서는 계산됩니다. 따라서 자릿수 값에 따라 정규화 해야 합니다 .

 

안녕 친구들.

 
말해봐, 히스토리의 이익은 파란색 원으로 표시됩니다. 이것은 이미 커미션과 스왑을 뺀 것입니까?
 

안녕하세요.

OpenOrderTime()이 첫 번째 주문만 반환하기 때문에 두 번째 및 후속 주문 의 시작 시간을 얻는 방법과 두 번째 및 후속 주문의 시작 가격을 얻는 방법은 다음과 같습니다. OpenOrderPrice()와 유사하게 첫 번째 가격도 반환합니다.