Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 2510

 
elibrarius # :

Görünüşe göre yeni türler için ayrılmış kelimeler.

Sadece rezerve değil, bir şey zaten çalışıyor.

 void OnStart ()
{
  vector v( 3 );
  v[ 0 ] = 1.0 ;
  v[ 1 ] = 2.0 ;
  v[ 2 ] = 3.0 ;
  matrix m( 3 , 3 );
  m.Random();
   Print ( "m = " , m);
   Print ( "m^-1 = " , m.Inverse());
   Print ( "Det(m) = " , m.Det());
   Print ( "m * v = " , m * v);
}
 
Alexey Nikolaev # :

Sadece rezerve değil, bir şey zaten çalışıyor.

Yardımı aramak hiçbir şeyi ortaya çıkarmıyor.
Ve matrisler işe yarayacak.
Değişkenler aracılığıyla boyutu ayarlamaya çalışır

int m1=2; int m2=2;
matris m(m1, m2);

Ve daha önce dinamik diziler aracılığıyla bir buhar banyosu yapmak gerekliydi.

 
elibrarius # :

Yardımı aramak hiçbir şeyi ortaya çıkarmıyor.

Sadece buradan bilgim var .

elibrarius # :

Ve matrisler işe yarayacak.
Değişkenler aracılığıyla boyutu ayarlamaya çalışır

int m1=2; int m2=2;
matris m(m1, m2);

Ve daha önce dinamik diziler aracılığıyla bir buhar banyosu yapmak gerekliydi.

Renat genellikle MQL5'te makine öğrenimi sözü verdi - örneğin ONNX desteği. Göreceğiz)

 
Vladimir Baskakov
İki otomobilin kavşağı henüz aşılmadı

... ve gecikme, NS tahmini tarafından azaltılabilir))

 
elibrarius # :
Herhangi biri, R'ye bağlanmak için https://www.mql5.com/en/code/17468 SanSanych paketini kullanıyorsa, o zaman:

R.mqh dosyasında vektör ve matris değişken isimleri derleme sırasında hata vermeye başladı. Onları başkalarına yeniden adlandırın ve her şey işe yarayacak. Vektör ve matr kullandım.

Düzenleyici, bu kelimeleri int , double gibi bir veri türü gibi mavi renkle vurgular. Görünüşe göre yeni türler için ayrılmış kelimeler.

Hmm, bu kütüphane hakkında hiçbir şey bilmiyordum. Ve gerçekte nasıl kullanılır, hangi işlevselliğe sahiptir?

 
iwelimorn # :

Kısacası her şey boş, piyasa MO ile aldatılamaz.

Sınıfların dağılımı ilk şekilde gösterilen işaretler ve hedef buldum.

Bu veri setinde eğitilen cutbust'un test ve eğitim modellerindeki doğruluk oranı %93 idi.

İkinci şekil, hedefe göre ticaretin denge ve eşitlik tablosunu gösterir:

Üçüncü şekil, eğitimli catbust modelinin sinyallerine göre ticaretin dengesi ve eşitliğinin bir grafiğini gösterir:

Öyleyse, bayanlar baylar, gidelim.

Hedef nedir, nasıl buldunuz?

Trolü mahvetmeyi denedin mi?

Sadece hata dengesine bakarsanız (+1 doğrudur -1, sınıf 1 için doğru değildir), o zaman sonuç çok farklı mı?

 
Alexey Vyazmikin # :

Hmm, bu kütüphane hakkında hiçbir şey bilmiyordum. Ve gerçekte nasıl kullanılır, hangi işlevselliğe sahiptir?


MT ve R arasında değişkenlerin ve dizilerin iki yönlü aktarımı. Orada alıntılar, geri sonuç ve komutlar.
İşlev açıklaması:
/**
*Dll sürümünü döndürün. Dönüş değerinin üst 16 biti
* ana sürümdür ve alt 16 bit minördür. Bu
*, bu başlık dosyasının ve
* zzthe dll birbirine uyar.
*/
int RGetDllVersion();

/**
* Bu doğrudan çağrılacak anlamına gelmez,
* başarılı sürüm kontrolünden sonra RInit() tarafından çağrılır.
* Yeni bir R oturumu başlatmak için RInit()'i aramalısınız.
*/
long RInit_(string komut satırı,int hata ayıklama düzeyi);

/**
* R oturumunu sonlandırın. Bunu deinit() işlevinizde arayın.
* Bundan sonra tutamaç artık geçerli değildir.
*/
void RDeinit(uzun tutamaç);

/**
* bu tanıtıcıya ait R oturumu ise true döndür
* hala koşuyor. R, herhangi bir önemli hatada sona erecektir.
*gönderdiğiniz kod. Bunu başlangıçta kontrol etmelisin
* başlatma işlevinizin ve tüm eylemleri durdurun. Son
* Çökmeden önceki komut günlükte bulunacaktır.
* R artık çalışmıyorsa, bu kitaplık herhangi bir şey yaymaz
* daha fazla günlük mesajı ve tüm komutları sessizce yok sayar.
*/
bool RIsRunning(uzun tutamaç);

/**
* R hala bir komut yürütüyorsa true değerini döndürür (sonuç olarak
* bir çağrıdan RExecuteAsync())
*/
bool RIsBusy(uzun tutamaç);

/**
* kodu yürütün ve beklemeyin. Ancak sonraki herhangi bir arama
* sadece bir iş parçacığı yürütüldüğünden bekleyecek
* herhangi bir zaman. Bitip bitmediğini kontrol etmek için RIsBusy() kullanın
*/
void RExecuteAsync(uzun tutamaç,dize kodu);

/**
* kodu yürütün ve bitene kadar bekleyin. bu olmayacak
* herhangi bir şeyi iade edin. Temelde aynı şeyi elde edebilirsiniz
* RGet*() işlevleri, ifadeyi değerlendirmek de
* sadece kod yürütüyor, tek fark bunların
* RGet*() işlevleri ayrıca ayrıştırmayı ve geri döndürmeyi dener
* çıktı RExecute() sadece yürütülecek, bekleyecek ve
* tüm çıktıları yoksay.
*/
void REexecute(uzun tutamaç,dize kodu);

/**
* değişken adına bir bool atayın. R'de bu tip "mantıksal" olarak adlandırılır.
*/
void RassignBool(uzun tutamaç,dize değişkeni,bool değeri);

/**
* değişken adına bir tamsayı atayın.
*/
void RassignInteger(uzun tutamaç,dize değişkeni,int değeri);

/**
* değişken adına bir double atayın.
*/
void RassignDouble(uzun rhandle,dize değişkeni,çift değer);

/**
* namd değişkenine bir dize atayın. R'de bu tip "karakter" olarak adlandırılır.
*/
void RassignString(uzun tutamaç,dize değişkeni,dize değeri);

/**
* değişken adına bir vektör atayın. Boyut eşleşmiyorsa
* gerçek dizi boyutunuz kötü şeyler olabilir.
*/
void RassignVector(uzun rhandle,dize değişkeni,double &vectr[],int size);

/**
* değişkene bir karakter vektörü (bir dizi dizi) atayın. Eğer ihtiyacın varsa
* bir faktör daha sonra bu komuttan sonra dönüştürmek için kodu çalıştırmalısınız. İçinde
* R a vektörünün son sürümleri, şundan daha fazla belleğe ihtiyaç duymaz:
* bir faktördür ve ona yeni unsurlar eklemek daha kolaydır.
*/
void RassignStringVector(uzun rhandle,dize değişkeni,dize &vectr[],int boyut);

/**
* değişken adına bir matris atayın. Matris şu şekilde satır numarasına sahip olmalıdır:
* birinci boyut (ham verilerde byrow=TRUE kullanılacaktır). Bu fonksiyon çok
* ekleyerek sıfırdan büyük bir matris (yüzlerce satır) oluşturmaktan daha hızlı
* sonunda her satır için RRowBindVector() ile yeni satırlar. Bu işlev optimize edilmiştir
* ile file-IO kullanarak tek bir işlev çağrısı ile büyük verim için
* ham ikili veri. Sadece bir avuç elemanlı çok küçük matrisler ve vektörler için
* Bu çok fazla yük olabilir ve diğer işlevler daha hızlı olacaktır. bir kez sen
* R'ye aktarılmış muhtemelen binlerce satır içeren matrise sahip olmanız gerekir.
* tek bir yeni öğenin gelişinde yavaş yavaş büyütmek için yalnızca RRowBindVector() kullanın
* her zaman tüm matrisin yeni bir kopyasını göndermek yerine veri vektörleri.
*/
void RassignMatrix(uzun rhandle,dize değişkeni,double &matr[],int satırlar,int sütunlar);

/**
* bir matrise veya veri çerçevesine bir satır ekleyin. Bu yürütülecek
* değişken <- rbind(değişken, vektör)
* boyut, gerçek dizi boyutuyla eşleşmezse kötü şeyler olabilir.
*/
void RAppendMatrixRow(uzun rhandle,dize değişkeni,double &vectr[],int size);

/**
* değişken varsa true, değilse false döndürür.
*/
bool RExists(uzun tutamaç,dize değişkeni);

/**
* ifadeyi değerlendirin ve bir bool döndürün. İfade herhangi bir R kodu olabilir
* Bu mantıklı olarak değerlendirecektir. Mantıksal bir vektör ise, o zaman sadece
* ilk eleman döndürülür.
*/
bool RGetBool(uzun tutamaç,dize ifadesi);

/**
* ifadeyi değerlendirin ve bir tamsayı döndürün. İfade herhangi bir R kodu olabilir
* bir tamsayı olarak değerlendirilecektir. Kayan nokta ise
* yuvarlanır, eğer bir vektör ise sadece ilk eleman döndürülür.
*/
int RGetInteger(uzun tutamaç,dize ifadesi);

/**
* ifadeyi değerlendirin ve bir çift döndürün. İfade herhangi bir R kodu olabilir
* bu, bir vektör ise, kayan noktalı bir sayı olarak değerlendirilecektir.
* yalnızca ilk öğe döndürülür.
*/
double RGetDouble(uzun tutamaç, dize ifadesi);

/**
* ifadeyi değerlendirin ve bir çift vektörü döndürün. ifade olabilir
* kayan noktalı sayıların bir vektörü olarak değerlendirilen herhangi bir şey olabilir.
* Dönüş değeri, içine kopyalanabilecek öğelerin sayısıdır.
*sıralamak. Asla boyuttan daha büyük olmayacak ama daha küçük olabilir.
* boyutlar eşleşmezse uyarılar hata ayıklama düzeyi 1'de verilir.
* >>> 100.000 öğeyle sınırlıdır
*/
int RGetVector(uzun rhandle,dize ifadesi,double &vectr[],int boyut);

/**
* hata ayıklama amacıyla bir print(ifade) yapın. çıkış olacak
* hata ayıklama düzeyi 0'da hata ayıklama izleyicisine gönderildi.
*/

void RPrint(uzun tutamaç, dize ifadesi);

 
elibrarius # :

MT ve R arasında değişkenlerin ve dizilerin iki yönlü aktarımı. Orada alıntılar, geri sonuç ve komutlar.
Bilgi için teşekkürler, bu olasılığın farkında olacağım. Orada/burada büyük gecikmeler var mı?
 
Alexey Vyazmikin # :
Bilgi için teşekkürler, bu olasılığın farkında olacağım. Orada/burada büyük gecikmeler var mı?
Çok hızlı. Bellek değişimi yoluyla. Dosyalar ve pipetler değil.
 
Vladimir Baskakov
İki otomobilin kavşağı henüz aşılmadı
İnanmayacaksın.
Ortalama alma kullanılırsa, sonuç tiklerle aynı olacaktır ve sinyal çevirme süresi saniyeler içinde eşleşecektir.
---
Şok olmuştum ;)