포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 401

 
vadynik :


나는 아마도 질문을 아주 정확하게 하지 않았을 것입니다. 제 말은 함수가 전역 변수에 설정된 마법을 볼 수 있다는 것을 의미합니다

물론 그는 볼 것입니다.

전역 변수 는 전역적으로 볼 수 있기 때문에 전역적입니다.

여기서 불분명한 것은 무엇입니까?

----

그러나 좋은 매너의 규칙에 따르면 모든 매개 변수를 함수에 전달하는 것이 바람직합니다. 그러면 호출 환경에서 더 독립적입니다.

전역 변수의 이름에서 함수 내부의 변수 이름을 추상화하려면 이 작업을 수행합니다. 그리고 그들에게 집착하지 마십시오.

 
그런 질문이 있으면 신선한 포럼에서 프로그래머에게 물어보고 대답을 얻습니다. 물론 모든 팁에서 하나만 올바른 것을 선택하기는 어렵습니다.
 

sergeev :

yan720 :


AccountEquity() 함수가 터미널에 요청을 합니까 아니면 브로커에 요청을 합니까?

터미널로

고맙습니다. 이 정보는 각 패킷과 함께 단말로 전송되는 것으로 밝혀졌습니다 ...

그리고 어떤 함수가 브로커를 호출하고 어떤 함수가 터미널을 호출하는지 어디에서 볼 수 있습니까? 아니면 브로커에서 터미널로 지속적으로 전송되는 데이터(변수) 목록 및/또는 별도의 요청으로 수신해야 하는 데이터(변수) 목록이 있습니까?

 
//|+-------------------------------------------------------------------------------------------------------+
int Accounting_Orders()
{
int Counter_Orders = 0 ;
//|+-------------------------------------------------------------------------------------------------------+
ArrayCopy (Massif_Old_Orders, Massif_New_Orders);
Counter_Orders = 0 ;
ArrayInitialize (Massif_New_Orders, 0 );
ArrayInitialize (Massif_All_Orders, 0 );
//|+-------------------------------------------------------------------------------------------------------+
for ( int q = 0 ; q < OrdersTotal (); q++)
{
if ( ( OrderSelect (q, SELECT_BY_POS )== true ) && ( OrderSymbol () == Symbol ()) )
{
Counter_Orders++;
Massif_New_Orders[Counter_Orders][ 1 ] = OrderOpenPrice ();
Massif_New_Orders[Counter_Orders][ 2 ] = OrderStopLoss ();
Massif_New_Orders[Counter_Orders][ 3 ] = OrderTakeProfit ();
Massif_New_Orders[Counter_Orders][ 4 ] = OrderTicket ();
Massif_New_Orders[Counter_Orders][ 5 ] = OrderLots ();
Massif_All_Orders[ OrderType ()]++;
Massif_New_Orders[Counter_Orders][ 6 ] = OrderType ();
Massif_New_Orders[Counter_Orders][ 7 ] = OrderMagicNumber ();
//|+-------------------------------------------------------------------------------------------------------+
if ( OrderComment () == "" )
{
Massif_New_Orders[Counter_Orders][ 8 ] = Order_False;   
}
else
{
Massif_New_Orders[Counter_Orders][ 8 ] = Order_True;
}
//|+-------------------------------------------------------------------------------------------------------+
Massif_New_Order[ 0 ][ 0 ] = Counter_Orders;
//|+-------------------------------------------------------------------------------------------------------+
return ;
  }
//|+-------------------------------------------------------------------------------------------------------+
주문 계산 기능, 즉 그것을 구성하는 배열을 사용하는 방법은 무엇입니까?

옵션 1
내 생각에는 코드의 식별된 위치에 특정 배열을 삽입하는 것입니다.
예를 들어:
 OrderSend (Massif_New_Orders[Counter_Orders][ 4 ], // Уникальный номер 1.
Massif_New_Orders[Counter_Orders][ 6 ],           // Тип .
Massif_New_Orders[Counter_Orders][ 5 ],           // Кол - во лотов, при торге.
Massif_New_Orders[Counter_Orders][ 1 ],           // Тип части бара, на котором происходит открытие позиции.
10 ,                                             // Допустимое проскальзование.
Massif_New_Orders[Counter_Orders][ 2 ],           // Остановка потерь.
Massif_New_Orders[Counter_Orders][ 3 ],           // Принятие прибыли. 
Massif_New_Orders[Counter_Orders][ 7 ]);          // Уникальный номер 2.
그런 다음 내 마음은 또 다른 질문을 던집니다.

- 어레이를 사용할 가치가 있습니까? -.
배열은 같은 유형의 변수에 사용되지만 주문 회계 기능은 같은 유형의 변수에 대해 "냄새를 맡지 않는다"는 것을 이해합니다.

옵션 2
주문(주문)에 대한 저장된 데이터를 사용해야 하는 경우 이미 할당된 배열의 기능을 호출한다고 생각합니다.
예를 들어:

 if (Old_Sistem = 12475 )                         //Если расчет объема торга надо вести по объему торга предыдущих ордеров,
{                                               //то 
O_Lots = Massif_New_Orders[Counter_Orders][ 5 ]; //вызывается значение лота предыдущего ордера из накопленной информации о ордерах.
}                                               //Конец.
 
yan720 :



고맙습니다. 이 정보는 각 패킷과 함께 단말로 전송되는 것으로 밝혀졌습니다 ...

그리고 어떤 함수가 브로커를 호출하고 어떤 함수가 터미널을 호출하는지 어디에서 볼 수 있습니까? 아니면 브로커에서 터미널로 지속적으로 전송되는 데이터(변수) 목록 및/또는 별도의 요청으로 수신해야 하는 데이터(변수) 목록이 있습니까?

거래 기능 . 그들만이 무역 서버에 구체적으로 요청을 보내고 그로부터 응답을 받습니다.
 
Link_x :
주문 계산 기능, 즉 그것을 구성하는 배열을 사용하는 방법은 무엇입니까?

옵션 1
내 생각에는 코드의 식별된 위치에 특정 배열을 삽입하는 것입니다.
예를 들어:
그런 다음 내 마음은 또 다른 질문을 던집니다.

- 어레이를 사용할 가치가 있습니까? -.
배열은 같은 유형의 변수에 사용되지만 주문 회계 기능은 같은 유형의 변수에 대해 "냄새를 맡지 않는다"는 것을 이해합니다.

옵션 2
주문(주문)에 대한 저장된 데이터를 사용해야 하는 경우 이미 할당된 배열의 기능을 호출한다고 생각합니다.
예를 들어:

시간 낭비라고 생각합니다. 개설 및 마감 주문에 대한 모든 정보는 터미널에 저장됩니다. 왜 배열로 복제합니까? 터미널에서 추출하는 방법을 배우는 것이 중요합니다.
 
yan720 :

고맙습니다. 이 정보는 각 패킷과 함께 단말로 전송되는 것으로 밝혀졌습니다 ...

그것은 자본이 지속적으로 이전된다는 사실이 아닙니다.

그것은 당신의 열린 위치 를 기반으로 터미널 자체에서 계산할 가능성이 높습니다.

그리고 어떤 함수가 브로커를 호출하고 어떤 함수가 터미널을 호출하는지 어디에서 볼 수 있습니까?

아무데도. 그냥 상식을 사용하십시오.

 
khorosh :
시간 낭비라고 생각합니다. 개설 및 마감 주문에 대한 모든 정보는 터미널에 저장됩니다. 왜 배열로 복제합니까? 터미널에서 추출하는 방법을 배우는 것이 중요합니다.


이러한 정보는 특정 명령으로 검색할 수 있습니다.
오더센드 인가요?
 
Link_x :

이러한 정보는 특정 명령으로 검색할 수 있습니다.
오더샌드인가요?
이것은 서버 에 거래 요청을 보내는 중입니다.
 
Link_x :

이러한 정보는 특정 명령으로 검색할 수 있습니다.
오더샌드인가요?
KimIV 기능에 대해 읽으면 대부분이 미결 또는 마감된 주문에 대한 일부 정보를 추출하도록 설계되었음을 이해할 수 있습니다.