eğer onu kendi dll'niz yaparsanız, kodun bir kısmını MQL'de ve bir kısmını lib'de kırmanın bir anlamı yoktur. tüm MySQL bu dll'nin içine girecek.
Tabii ki! Böyle bir fırsat varsa, MQL'de yazmak hiç gerekli değildir. Hemen hemen her şeyi DLL'ye taşıdı. Her şeyi uygulamama taşımaya başlıyorum. Terminali uzaktan yöneteceğim.
İ). Hisselerin numaralandırılması için bir algoritma bulmak gerekir, böylece:
A + B + C + n + ... = %100
Aynı zamanda, {A, B, C, n} kümesindeki her eleman standart kriterlere sahip olmalıdır: maksimum ve minimum kenarlarda kısıtlamalar ve tip artışı: start, stop, dik;
Görev örneği:
bir set olsun
Y{A,B,C,n};
Her bir öğe, %10'luk artışlarla -%100 ila +%100 arasında değişebilir. Bu durumda, modulo'nun tüm elemanlarının toplamı %100'e eşit olmalıdır: A+B+C+n=%100.
A, B, C, n arasındaki tüm olası paylaşımların dağılımını tanımlayan D(x,number_of_elements_mult_Y) matrisini bulun, örneğin:
ABC
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Yanlış bulgu örnekleri:
ABC
-50 30 120 - C maddesi %100 limitten büyük
35 30 35 - adım %10'a karşılık gelmiyor
70 30 10 - tutar %100'e eşit değil
-50 60 90 - modulo tüm elemanların toplamı %100'e eşit değil (50+60+90=200)
II*). MT5/MT4 optimize ediciyi kullanarak, kümenin her bir öğesinin kısıtlamalarının standart Başlat, Adım, Durdur kısıtlamaları tarafından ayarlanabileceği şekilde N kümesi için payların numaralandırılması için bir çözüm bulun.
Yeni başlayanlar için, sorunun belirli bir durumunu uygulayan bir algoritma:
//+------------------------------------------------------------------+//| 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 |//+------------------------------------------------------------------+voidOnStart ()
{
//---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);
}
//+------------------------------------------------------------------+
Gördüğünüz gibi, kümenin sonuncusu hariç her elemanı ek bir for döngüsü gerektirir. Buna iyi bir çözüm denemez çünkü. kümenin eleman sayısındaki bir değişiklikle, ek döngüler eklenmeli veya kaldırılmalıdır.
Yeni başlayanlar için, sorunun belirli bir durumunu uygulayan bir algoritma:
Gördüğünüz gibi, kümenin sonuncusu hariç her elemanı ek bir for döngüsü gerektirir. Buna iyi bir çözüm denemez çünkü. kümenin eleman sayısındaki bir değişiklikle, ek döngüler eklenmeli veya kaldırılmalıdır.
A veya B veya C'den her seferinde bir tane while döngüsü yapın.
içinde, boşluklara ulaşmak için olup olmadığını analiz edin
A veya B veya C'den her seferinde bir tane while döngüsü yapın.
içinde, boşluklara ulaşmak için olup olmadığını analiz edin
Gerçek şu ki, B ve C de birbirleriyle birleşecek ve bu yeni bir döngü gerektiriyor. Belki daha basit algoritmalar olsa da bu problem özyinelemeli olarak çözülebilir.
MQL'de (kendi borçlarınız olmadan) MySQL ile tam teşekküllü çalışmayı unutabileceğiniz ortaya çıktı. çok yazık...
Kütüphanede sevilmeyen şey nedir?
Bir işaretçi döndürme durumunda, statik ve aynı işlemde olmalıdır.
Kütüphanede sevilmeyen şey nedir?
eğer onu kendi dll'niz yaparsanız, kodun bir kısmını MQL'de ve bir kısmını lib'de kırmanın bir anlamı yoktur. tüm MySQL bu dll'nin içine girecek.
eğer onu kendi dll'niz yaparsanız, kodun bir kısmını MQL'de ve bir kısmını lib'de kırmanın bir anlamı yoktur. tüm MySQL bu dll'nin içine girecek.
Hisselerin numaralandırılması için algoritma
İ). Hisselerin numaralandırılması için bir algoritma bulmak gerekir, böylece:
A + B + C + n + ... = %100
Aynı zamanda, {A, B, C, n} kümesindeki her eleman standart kriterlere sahip olmalıdır: maksimum ve minimum kenarlarda kısıtlamalar ve tip artışı: start, stop, dik;
Görev örneği:
bir set olsun
Y{A,B,C,n};
Her bir öğe, %10'luk artışlarla -%100 ila +%100 arasında değişebilir. Bu durumda, modulo'nun tüm elemanlarının toplamı %100'e eşit olmalıdır: A+B+C+n=%100.
A, B, C, n arasındaki tüm olası paylaşımların dağılımını tanımlayan D(x,number_of_elements_mult_Y) matrisini bulun, örneğin:
ABC
100 0 0
90 10 0
90 0 10
80 10 10
80 0 20
...
Yanlış bulgu örnekleri:
ABC
-50 30 120 - C maddesi %100 limitten büyük
35 30 35 - adım %10'a karşılık gelmiyor
70 30 10 - tutar %100'e eşit değil
-50 60 90 - modulo tüm elemanların toplamı %100'e eşit değil (50+60+90=200)
II*). MT5/MT4 optimize ediciyi kullanarak, kümenin her bir öğesinin kısıtlamalarının standart Başlat, Adım, Durdur kısıtlamaları tarafından ayarlanabileceği şekilde N kümesi için payların numaralandırılması için bir çözüm bulun.
Yeni başlayanlar için, sorunun belirli bir durumunu uygulayan bir algoritma:
Gördüğünüz gibi, kümenin sonuncusu hariç her elemanı ek bir for döngüsü gerektirir. Buna iyi bir çözüm denemez çünkü. kümenin eleman sayısındaki bir değişiklikle, ek döngüler eklenmeli veya kaldırılmalıdır.
Yeni başlayanlar için, sorunun belirli bir durumunu uygulayan bir algoritma:
Gördüğünüz gibi, kümenin sonuncusu hariç her elemanı ek bir for döngüsü gerektirir. Buna iyi bir çözüm denemez çünkü. kümenin eleman sayısındaki bir değişiklikle, ek döngüler eklenmeli veya kaldırılmalıdır.
A veya B veya C'den her seferinde bir tane while döngüsü yapın.
içinde, boşluklara ulaşmak için olup olmadığını analiz edin
A veya B veya C'den her seferinde bir tane while döngüsü yapın.
içinde, boşluklara ulaşmak için olup olmadığını analiz edin
Gerçek şu ki, B ve C de birbirleriyle birleşecek ve bu yeni bir döngü gerektiriyor. Belki daha basit algoritmalar olsa da bu problem özyinelemeli olarak çözülebilir.