PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 21

 
방법을 보여주었다. 게시물 수정했습니다.
 
알았어 고마워.
MQL(자신의 dll 없이)에서 MySQL에 대한 본격적인 작업을 잊을 수 있다는 것이 밝혀졌습니다. 불쌍해...
 

도서관에 대해 좋아하지 않는 것은 무엇입니까?

포인터를 반환하는 경우에는 정적이어야 하며 동일한 프로세스에 있어야 합니다.

 
Zhunko :

도서관에 대해 좋아하지 않는 것은 무엇입니까?

자신의 dll로 만들면 MQL의 코드 일부와 lib의 일부를 깨는 의미가 없습니다. 모든 MySQL은 이 dll 안에 들어갈 것입니다.

 
안녕하세요. 아는 사람 말해줘 VPS Windows Web Server 2008 32비트 - R2(RAM 256) 아님 - MT4에서 작동 합니까?
 
sergeev :

자신의 dll로 만들면 MQL의 코드 일부와 lib의 일부를 깨는 의미가 없습니다. 모든 MySQL은 이 dll 안에 들어갈 것입니다.

물론이죠! 그런 기회가 있으면 MQL로 작성할 필요가 전혀 없습니다. 거의 모든 것을 DLL로 옮겼습니다. 나는 모든 것을 내 응용 프로그램으로 옮기기 시작했습니다. 터미널을 원격으로 관리하겠습니다.
 

주식 열거 알고리즘

나). 다음과 같이 주식을 열거하는 알고리즘을 찾아야 합니다.

A + B + C + n + ... = 100%

동시에 집합 {A, B, C, n} 의 각 요소에는 표준 기준이 있어야 합니다. 최대 및 최소 면에 대한 제한 및 유형의 증분: 시작, 중지, 가파른;

작업 예:

세트가 있게 해주세요

Y{A,B,C,n};

각 요소는 -100%에서 +100%까지 10%씩 증가할 수 있습니다. 이 경우 모듈로 모든 요소의 합은 100%와 같아야 합니다: A+B+C+n=100%.

A, B, C, n 사이의 가능한 모든 공유 분포를 설명하는 행렬 D(x,number_of_elements_mult_Y)를 찾으십시오. 예를 들면 다음과 같습니다.

알파벳

100 0 0

90 10 0

90 0 10

80 10 10

80 0 20

...

잘못된 발견의 예:

알파벳

-50 30 120 - 항목 C가 100% 제한보다 큽니다.

35 30 35 - 단계가 10%에 해당하지 않음

70 30 10 - 100%가 아닌 금액

-50 60 90 - 모듈로 모든 요소의 합이 100%와 같지 않음(50+60+90=200)

나*). 세트의 각 요소에 대한 제한이 표준 시작, 단계, 중지 제한에 의해 설정될 수 있는 방식으로 MT5/MT4 옵티마이저를 사용하여 세트 N에 대한 공유 열거에 대한 솔루션을 찾으십시오.

 


우선, 다음은 문제의 특정 사례를 구현하는 알고리즘입니다.

 //+------------------------------------------------------------------+
//|                                                  Optimizator.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link       "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int A, B, C;
   int handle = FileOpen ( "test.csv" , FILE_WRITE , '\t' );
   for (A= 0 ; A<= 100 ;A+= 10 )
   {
       for (B= 0 ;B<= 100 -A;B+= 10 ){
         C= 100 -(A+B);
         FileWrite (handle,A,B,C);      
      }
   }
   FileClose (handle);
  }
//+------------------------------------------------------------------+

보다시피 마지막 요소를 제외하고 집합의 각 요소에는 추가 for 루프가 필요합니다. 이것은 좋은 해결책이라고 할 수 없습니다. 왜냐하면. 세트의 요소 수가 변경되면 추가 주기를 삽입하거나 제거해야 합니다.

 
C-4 :


우선, 다음은 문제의 특정 사례를 구현하는 알고리즘입니다.

보다시피 마지막 요소를 제외하고 집합의 각 요소에는 추가 for 루프가 필요합니다. 이것은 좋은 해결책이라고 할 수 없습니다. 왜냐하면. 세트의 요소 수가 변경되면 추가 주기를 삽입하거나 제거해야 합니다.


A 또는 B 또는 C에서 한 번에 하나씩 while 루프를 하나만 수행하십시오.

내부에서 if를 분석하여 격차에 도달하십시오.

 
sergeev :

A 또는 B 또는 C에서 한 번에 하나씩 while 루프를 하나만 수행하십시오.

내부에서 if를 분석하여 격차에 도달하십시오.


사실은 B와 C도 서로 결합될 것이고, 이를 위해서는 새로운 주기가 필요합니다. 아마도 이 문제는 더 간단한 알고리즘이 있을 수 있지만 재귀적으로 해결할 수 있습니다.
사유: