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

 
hoz :

Şu anda varsayılan ana eğilimi iletmekten sorumlu olacak olan trend parametresini bu fonksiyona geçirirken, bu parametreye dayalı olarak daha fazla hesaplama yapılacak şekilde nasıl yapılır.

Onlar. trend == down ise, o zaman döngüdeki fonksiyon şimdiki gibiydi ve eğer trend == up ise, o zaman döngüde, Open[i] ve Close[i] , koşulların karşılanması için değiştirildi. Çünkü bu durumda barın kapanış fiyatı zaten açılış fiyatından daha düşük olacaktır ve sonuç olarak aradaki fark eksi işareti ile olacaktır.


 bool trend;

if (( 2 *trend- 1 )*Δ=> const ) cnt++;
if (( 2 *trend- 1 )*Δ< const ) cnt= 0 ;
Ardından 2 *trend- 1, +1 ve -1 değerlerini alır, yani. trend=true ise yukarı ve trend=false - aşağı olacak ve Δ sırasıyla doğrudan veya ters işaretle alınacaktır. İşte matematiğin if'nin wild'larının yerini aldığı bir örnek.
 

gyfto, Kitteki test komut dosyası sizin için çalışıyor mu?

şunu yapardım:

 //в шапке
#include <SharedMemoryMT4.mqh>
//в инит. Создание и открытие не обязательно. Эти функции для ускорения работы с памятью.
MemoryCreate( 1 , "" , NULL , - 1 , "ind" , 60 * GlobalVariableGet ( "ADXBars" ));
// Вариант более быстрый, чем выше:
MemoryCreateProjection( 1 , "" , NULL , - 1 , "ind" , 60 * GlobalVariableGet ( "ADXBars" ));

//в деинит
MemoryCloseName( 1 , "" , "ind" );
//в старт вместо 
for (; i<Σ; i++) MemoryWriteInt( 1 , "" , - 1 , "ind" , i * 4 , iBars(sn, 1 )); //ind[i]=iBars(sn, 1);
 #property show_inputs
#include <SharedMemoryMT4.mqh>
extern int x; //сколько секунд назад с данного момента прикрепления смотрим значения TOLHCV

int init()
  {
//   MemoryOpen(1, "", -1, "ind"); // Это не требуется.
   return ( 0 );
  }
int start()
  {
   //MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1
   int n=MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" ))-MemoryReadInt( 1 , "" , - 1 , "ind" , GlobalVariableGet ( "final" )-x)+ 1 ;
   Alert (TimeToStr( TimeCurrent (),TIME_SECONDS), ": Time=" , TimeToStr(Time[n], TIME_SECONDS), ", Open=" , Open[n], ", High=" , High[n], ", Low=" , Low[n], ", Close=" , Close[n], ", Volume=" , Volume[n]);
   return ( 0 );
  }

Gerisi doğru. Yalnızca veri aktarım protokolünü incelemedim.

Bellek oluşturma, açma ve ayırma isteğe bağlıdır. Bu işlevler, bellek işlemeyi hızlandırmak içindir. Kütüphane ile en basit çalışma için sadece okuma ve yazma fonksiyonlarına ihtiyaç vardır. Gerisini kütüphane halledecek. Ne zaman, kayıttan önce bile okumak mümkündür. İstenen hafıza tahsis edilecek ve fonksiyon sıfıra dönecektir. Sanki orada henüz bir şey yokmuş gibi.

 

Zhunko, öyle görünmüyor. Comment() çıktı vermez, günlükte yalnızca günlüğe yazar:

 15 : 51 : 13 Check_SharedMemoryMT4.dll AUDUSD,M1 inputs: Area= 1 ; InitPrefix= "" ; UserGlobal= 25 ; UserTerminal= 50 ; UserWindow= 100 ; CheckWriteRead= false ; CheckWrite= false ; CheckRead= false ; CheckGeneral= false
CheckProjection= false ; CheckClose= false ; NamePrefix= "Check" ; NameMemory0= "CheckMemory0" ; NameMemory1= "CheckMemory1" ; NameMemory2= "CheckMemory2" ; NameMemory3= "CheckMemory3" ; NameMemory4= "Memory4"
Index=- 1 ; StartByte= 0 ; MemorySize= 64000 ; bValue= true ; cValue= 123 ; ucValue= 255 ; shValue= 32100 ; ushValue= 65535 ; nValue= 2147012345 ; fValue= 1234.56789012 ; dValue= 1234.56789012 ; sValue0= "Контроль = 1234.56789"
sValue1= "Контроль = 9876.54321" ; sValue2= "Привет мир!!!" ; sValue3= "Миру мир!" ; sValue4= "Неправильное  имя" ;

Hepsi tek satırda, anormal ekran genişliği olmaması için buraya taşıdım.

 
gyfto :

Zhunko, öyle görünmüyor. Comment() çıktı vermez, günlükte yalnızca günlüğe yazar:

Hepsi tek satırda, anormal ekran genişliği olmaması için buraya taşıdım.

Videoyu izle. Tam olarak aynısını yapın. Eğer işe yaramazsa, inceleyeceğiz. Benim için çalışıyor.
 
Muhtemelen yakında en aptal hata için yarışmayı kazanacağım. GV değişkenim ADXBar'larım bildirilmedi, bu yüzden "yöntemde bir hata" yazıldı. Ayrıca int sınırında hizalama yoktu. Ancak uyarı, hizalamalı veya hizalamasız olsa bile tüm sıfırları görüntülemeye devam eder. Videoyu izleyeceğim, önce kendim çözmeye çalışacağım. Olmazsa, birlikte çözeriz.
 

TarasBY artmedia70hoz _

Teşekkürler memurlar!

 
CYBOPOB :

TarasBY artmedia70hoz _

Teşekkürler memurlar!

Ne, kendini mi vurdu? :)))
 
artmedia70 :
Ne, kendini mi vurdu? :)))


Çift 8-[
 

Merhaba! Lütfen bu başlıkta bana yardım edin:

https://www.mql5.com/ru/forum/144634

Çok teşekkürler!

 

Bu kahrolası hatayı kendim aldım. Aslında burada hiçbir mantık yok. https://book.mql4.com/en/appendix/limits gereksinimlerine göre bekleyen bir emir açmak için, açılış fiyatı Tekliften (satış için) düşük veya Talepten (satın almak için) yüksek olmalıdır. Her şeyi gereksinimlere göre yapıyorum.

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   double OOP = High[ 1 ] + i_thresholdToUp * pt;
   pr ( "ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);

   if (ND(OOP) > Ask)
       ticket = OrderSend ( Symbol (), OP_BUYSTOP, 0.1 , ND(OOP), 3 , 0 , 0 , NULL , i_magic, 0 , CLR_NONE );
   else pr ( "Ордер послать не удалось " + GetLastError ());
   
   if (ticket > 0 )
   {
       lastBarTime = Time[ 0 ];               // На текущем баре все необходимые действия..
                                             // .. успешно выполнены
       return ( true );
   }
}

Periyodik olarak, 0 ve 130 hatası var. 130. hata, sipariş açarken değil, değiştirirken olabilecek yanlış durdurma hatası olmasına rağmen.

Ekranda, pr işlevi kullanılarak ekranda görüntülenen durum ve baskı.

Dur hatası

Lütfen bana bu söveden nasıl kurtulacağımı söyle. Bu hatadan zaten bıktım. Mantıken, konunun dışına çıktı.