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

 
Tretyakov Rostyslav # :

그러나 나는 코끼리를 눈치 채지 못했습니다))) 오픈 주문의 종가가 얼마라고 생각합니까?

그렇게 해봐

질문 하나 더

포인트 단위의 이익 계산은 OrderProfit * Point .?

 
Mihail Matkovskij # :

그런 다음 SymbolInfoDouble

왜 바로 안되나요?

 
Alexander Avksentyev # :

질문 하나 더

포인트 단위의 이익 계산은 OrderProfit * Point .?

OrderProfit 순이익 값을 반환합니다(예금 통화로 된 값).
포인트 - 견적 통화로 표시된 현재 상품의 포인트
크기

모든 도움

 
Andrey Sokolov # :

OrderProfit 순이익 값을 반환합니다(예금 통화로 된 값).
포인트 - 견적 통화로 표시된 현재 상품의 포인트
크기

모든 도움

동의합니다. 도움말을 읽었습니다.

이익에 Point를 곱해서 0.00001 이하가 되었습니다.

 
Alexander Avksentyev # :

동의합니다. 도움말을 읽었습니다.

이익에 Point를 곱해서 0.00001 이하가 되었습니다.

이상한 직업

 
Alexander Avksentyev # :

질문 하나 더

포인트 단위의 이익 계산은 OrderProfit * Point .?

가격은 20pp를 넘고 $50의 이익을 줄 수 있습니다.

5pp를 넘길 수 있지만 이익은 $ 80입니다.

각 기호에 동일하게 적용되며 프랑을 사용하면 동일한 포인트 단위로 캐나다인보다 이익이 더 큽니다.

 
Artyom Trishkin # :

왜 바로 안되나요?

온라인에서 간단한 예를 작성했습니다. 편집장에도 가지 않았다. Alexander는 초보 프로그래머이며 추가적인 복잡성이 필요하지 않습니다. 위의 그의 코드를 참조하십시오. 그러나 다중 기호 로봇의 개발에 대해 이야기하고 있다면 SymbolInfoDouble을 사용할 수 있습니다. 누가 간섭합니까?

 
Mihail Matkovskij # :

SymbolInfoTick 함수는 틱 데이터를 얻을 수 있는 필드의 특수 MqlTick 구조에 틱 데이터를 씁니다.

고맙습니다

 

또 다른 질문이 생겼다

구석에 비문을 만들었다

 //+-----------------------------------------------------------------------------------------------+
int OnInit ()
  {
Start          = TimeCurrent ();
MaxMartinLot   = Lot* MathPow ( 1.4 ,OrdersClose);
MaxMartinLot2  = Lot* MathPow (K_Martin2,OrdersClose2);
AC             = StringConcatenate ( " " , AccountCurrency());
int Y          = 20 ;
DrawLABEL( "lab_Take" , 1 , 5 ,Y, clrLime , "LOT: " ); 
return ( INIT_SUCCEEDED );
  }
//+-----------------------------------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+-----------------------------------------------------------------------------------------------+
void OnTick ()
  {
// Получим значение индикатора
   dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
       if (CountOrders()== 0 )
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
       if (bSignalBuy() == true )
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
       if (bSignalSell() == true )
         vOrderOpenSell();
     }
       DrawLABEL( "lab_Take" , 1 , 5 , 0 ,Color(), StringConcatenate ( "LOT: " ,DoubleToStr(LOT(), 2 )));   
  }

노란색 줄에 다음과 같은 경고가 표시됩니다.

유형 변환으로 인한 데이터 손실 가능성

마치 그가 뭔가를 섞은 것처럼.

그것이 작동하는 방식입니다

거래가 없으면 한 가지 색상으로 켜집니다.

거래가 열리면 다른 색상으로 켜집니다.

Color()는 다음과 같이 설정됩니다.

 double Color()
  {
   double CL = clrRed ;
   if (CountOrders()== 0 ) CL = clrYellow ;
   return (CL);
  }
봐주세요.
 
законопослушный гражданин 데이터 손실 가능성

마치 그가 뭔가를 섞은 것처럼.

그것이 작동하는 방식입니다

거래가 없으면 한 가지 색상으로 켜집니다.

거래가 열리면 다른 색상으로 켜집니다.

Color()는 다음과 같이 설정됩니다.

봐주세요.

Color 함수는 double이 아닌 color를 반환해야 합니다.

color Color()
  {
   color CL = clrRed ;
   if (CountOrders() == 0 ) 
     CL = clrYellow ;
   return (CL);
  }

사이트 엔진에 의해 추가된 링크도 공부할 필요가 없을 것입니다.