[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 10

 
Ve kütüphanenin çalışmasıyla ilgili başka bir soru.
Kütüphane dosyasını oluşturdum, derledim, her şey hatasız gitti.
Fonksiyonu gösterge koduna aktardım, derledim, her şey yolunda.
Gösterge başlatıldığında, kullanılırken içe aktarılan işlev yürütülmedi.

her şey bu işlev için göstergenin kodundan çalışır. İşte kütüphane kodu.

 //+------------------------------------------------------------------+
//|                                                         lib1.mq4 |
//|                                         Copyright © 2012, Fox.RM |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Fox.RM"
#property link       "http://www.metaquotes.net"
#property library
//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
double Sredn( double ArrSr[])
{
double a= 1 ,c,step= 1 / 20 ;
for ( int i= 0 ;i<= 20 ;i++)
{ if (ArrSr[i]== 0 ){a*= 1 ;} else {a*= MathAbs (ArrSr[i]);}}
c= MathPow (a, step);
   return (c);
}
//+------------------------------------------------------------------+

Bu, gösterge kodundaki çağrıdır:

 #import "lib1.ex4"
     double Sredn( double & ArrSr[]);
     void SetText( string name, string name2, string text, string text2, color c, 
int size);
#import

 
Fox_RM :
Herkese iyi günler!
İzlemek için bir uzman için göstergemin kodunu yeniden oluşturmaya karar verdim.
sinyallerini işliyor.
Hataları derlerken, 0. Test cihazında da hatasız çalışır, ancak hiçbiri

bir işlem, sorun ne?

ZY Eminim çok ve aptalca hatalar vardır, lütfen boşlukları vurun.

 int counted_bars= IndicatorCounted (); 

bir uzmana ve bir gösterge işlevine sahip olduğunuzu kendiniz yazarsınız.

Zorla ihtiyacınız olan çubukların sayısını sayın ve artık yok.


İkinci olarak, bu sinyal için zaten bir açılış olduğuna dair bir kontrol ekleyin, aksi takdirde her onay işareti için yeni bir sipariş alırsınız.

Üçüncüsü, iCustom işlevine bakın

 
ilunga :

bir uzmana ve bir gösterge işlevine sahip olduğunuzu kendiniz yazarsınız.

İhtiyacınız olan çubuk sayısını sayın, daha fazlasını değil.

Saymaya zorlama nasıl yapılır?
 
Fox_RM :
Herkese iyi günler!
İzlemek için bir uzman için göstergemin kodunu yeniden oluşturmaya karar verdim.
sinyallerini işliyor.
Hataları derlerken, 0. Test cihazında da hatasız çalışır, ancak hiçbiri

bir işlem, sorun ne?

ZY Eminim çok ve aptalca hatalar vardır, lütfen boşlukları vurun.


Açılış fiyatı
 if (Sredn(TP_UP)>= 2.5 ) OrderSend ( Symbol (),OP_SELL, 0.1 ,Close[i], 2 , 50 , 20 );
 if (Sredn(TP_DN)>= 2.0 ) OrderSend ( Symbol (),OP_BUY, 0.1 ,Close[i], 2 , 50 , 20 );
 
Fox_RM :
Saymaya zorlama nasıl yapılır?
Expert Advisor ve açılış fırsatları için sadece 0. çubuktaki sinyal önemlidir, değil mi? Bu nedenle, hesaplama döngüsünü sınır çubuklarından bu hesaplama için gereken sayıya kadar kesin.
 
r772ra :

Açılış fiyatı

Onlar. çubukları yeniden hesaplamak için bu koşulu kullan?

Ama benim göstergemde, TP_UP ve TP_DN dizileri her tik için hesaplanır . Buna göre, önce hesaplanmaları gerekir.

 
ilunga :
Expert Advisor ve açılış fırsatları için sadece 0. çubuktaki sinyal önemlidir, değil mi? Bu nedenle, hesaplama döngüsünü sınır çubuklarından bu hesaplama için gereken sayıya kadar kesin.

NewBar() işlevini kullanarak siparişleri yeni bir çubukta açmaya çalıştım. Bunun için kullanılmalı mı?

Örneğin if (NewBar())i++; Bunun gibi bir şey.

 
ilunga :
Expert Advisor ve açılış fırsatları için sadece 0. çubuktaki sinyal önemlidir, değil mi? Bu nedenle, hesaplama döngüsünü sınır çubuklarından bu hesaplama için gereken sayıya kadar kesin.
Ve yine de bir uzman için bu iki hesaplamadaki temel farkın ne olduğunu tam olarak anlamadım;(
 
Fox_RM :
Ve kütüphanenin çalışmasıyla ilgili başka bir soru.
Kütüphane dosyasını oluşturdum, derledim, her şey hatasız gitti.
Fonksiyonu gösterge koduna aktardım, derledim, her şey yolunda.
Gösterge başlatıldığında, kullanılırken içe aktarılan işlev yürütülmedi.

her şey bu işlev için göstergenin kodundan çalışır. İşte kütüphane kodu.

Bu, gösterge kodundaki çağrıdır:

Belki dizi, göstergenin init() içinde doğru şekilde hazırlanmamıştır? Seni doğru anladım - içe aktarılan işlev orada çalışmadı mı?
 
TarasBY :
Belki dizi, göstergenin init() içinde doğru şekilde hazırlanmamıştır? Seni doğru anladım - içe aktarılan işlev orada çalışmadı mı?
Oldukça doğru. Kontrol ettim, her şey doğru görünüyor. Ayrıca, programın kendisinde kullanıldığında neden her şey doğru çalışıyor.
Neden: