찻주전자의 질문 - 페이지 181

 

도와주세요. 어디에서도 찾을 수 없었습니다.

여러 거래 작업 후 Expert Advisor로부터 포지션을 여는 가중 평균 가격 을 찾는 방법은 무엇입니까? CPositionInfo 의 PriceOpen () 은 첫 번째 거래의 TP를 보여주지만 여러 거래 후에 얻은 현재의 TP가 필요합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
class Parent1
{
public:
	virtual void Fn() {}
};

template <typename type>
class Parent2   // Какой-то библиотечный класс.
{
public:
	void Fn() {}     // Эту функцию хочу вызвать в Parent 1.
};

class Derived : public Parent2<type>, public Parent1
{

};

Parent1 *p = new Derived();
p->Fn();
아이디어는 우리가 필요로 하는 기능을 가진 클래스가 있다는 것입니다(연결 목록 Parent2). 이 클래스를 다른 계층 구조에 연결하고 싶습니다(다중 상속 사용). 또한 이 계층의 기본 클래스에서 동일한 이름(라이브러리 클래스와 동일 )의 가상 함수를 정의하여 이러한 라이브러리 함수를 호출합니다. 라이브러리 클래스는 템플릿이므로 출력 유형(다중 상속 후)을 알 수 없습니다(많고 다릅니다). 하지만 모두 비현실적입니다.
 
sergeev :

관심은 아마도 순전히 학문적일 것입니다

C++ 에서 Q3을 만드는 방법: 공개 Q1, 공개 Q2

동시에 컴파일러가 원하는 것을 이해할 수 있도록 합니다.

이 항목에 무슨 문제가 있습니까? 이것을 다중 상속이라고 합니다.
 
220Volt :
이 항목에 무슨 문제가 있습니까? 이것을 다중 상속이라고 합니다.

예, 모든 것이 그렇습니다. 프로토타입이 동일한 기능을 갖는다면 계단식 상속을 만드는 것이 더 논리적입니다.

다른 가상 또는 명시적 함수 집합이 있는 경우 다중 상속이 필요하고 모든 가상 또는 명시적 함수를 하위 항목에서 사용할 수 있어야 합니다.

이것은 이미 특정 계층이 있지만 일부 가상 머신이 부족할 때 특히 중요하므로 설정된 클래스를 다시 작성하지 않도록 다중 상속이 이루어지고 누락된 클래스가 병렬 분기에서 가상화됩니다.

 
Urain :

예, 모든 것이 그렇습니다. 프로토타입이 동일한 기능을 갖는다면 계단식 상속을 만드는 것이 더 논리적입니다.

다른 가상 또는 명시적 함수 집합이 있는 경우 다중 상속이 필요하고 모든 가상 또는 명시적 함수를 하위 항목에서 사용할 수 있어야 합니다.

이것은 이미 특정 계층이 있지만 일부 가상 머신이 부족할 때 특히 중요하므로 설정된 클래스를 다시 작성하지 않도록 다중 상속이 이루어지고 누락된 클래스가 병렬 분기에서 가상화됩니다.

나는 그 아이디어에 완전히 만족하지 못했습니다. 다중 상속은 모든 라이브러리 기능을 연결하는 데 유용하며 템플릿이 없다면 모든 것이 좋을 것입니다.
 
220Volt :
이 항목에 무슨 문제가 있습니까? 이것을 다중 상속이라고 합니다.

원하는 대로 부르지만 여전히 컴파일러와 협상해야 합니다.

유일한 계약은 Q2에서 Fn을 정의하는 것입니다.

 

좋은 오후 입니다.

한 번에 모든 기호에 대한 열린 위치의 양을 선택하는 방법은 무엇입니까?       

if(PositionSelect(Symbol_)) open_volume = PositionGetDouble( POSITION_VOLUME ) - 이 함수는 각 문자에 대한 결과만 별도로 반환합니다.

 
abeiks :

좋은 오후 입니다.

한 번에 모든 기호에 대한 열린 위치의 양을 선택하는 방법은 무엇입니까?       

if(PositionSelect(Symbol_)) open_volume = PositionGetDouble( POSITION_VOLUME ) - 이 함수는 각 문자에 대한 결과만 별도로 반환합니다.

루프의 모든 문자를 살펴보고 요약합니다. 다음과 같이 다소:

 double volume = 0 ;
for ( int counter = PositionsTotal ();  counter > 0 ;  counter --)
{
   if ( PositionSelect ( PositionGetSymbol (counter)) )
      volume += PositionGetDouble ( POSITION_VOLUME );
}
정확성을 확인하지 않았습니다(전혀 컴파일되지 않음).
 
220Volt :

루프의 모든 문자를 살펴보고 요약합니다. 다음과 같이 다소:

정확성을 확인하지 않았습니다(전혀 컴파일되지 않음).

열린 포지션 에만 AccountInfoDouble(ACCOUNT_BALANCE) 같은 것이 있을 수 있다고 생각했습니다. 하지만 루프의 모든 문자를 정렬해야 합니다. 고맙습니다.

 

인쇄 기능 이 40 대신 0을 인쇄하는 이유를 알 수 없습니까?

 //+------------------------------------------------------------------+
//|                                               test_deviation.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"

#include <Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
CTrade trade;
trade.SetDeviationInPoints( 40 );
Print (trade.RequestDeviation());
  }
//+------------------------------------------------------------------+