Ş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 == upise, 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.
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>externint x; //сколько секунд назад с данного момента прикрепления смотрим значения TOLHCVint init()
{
// MemoryOpen(1, "", -1, "ind"); // Это не требуется.return ( 0 );
}
int start()
{
//MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1int 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.
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.
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ı.
Lütfen bana bu söveden nasıl kurtulacağımı söyle. Bu hatadan zaten bıktım. Mantıken, konunun dışına çıktı.
Ş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.
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:
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:
Hepsi tek satırda, anormal ekran genişliği olmaması için buraya taşıdım.
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.
TarasBY artmedia70hoz _
Teşekkürler memurlar!
TarasBY artmedia70hoz _
Teşekkürler memurlar!
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.
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ı.
Lütfen bana bu söveden nasıl kurtulacağımı söyle. Bu hatadan zaten bıktım. Mantıken, konunun dışına çıktı.