С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах. Цель проекта — дать конечному пользователю такую возможность и научить это делать с помощью моей библиотеки. Я постарался сделать ее максимально понятной в изучении, с возможностями дальнейшего развития.
Lütfen bana iCustom aracılığıyla adlandırılan başka bir göstergenin arabelleğinden kopyalayarak gösterge arabelleğini verilerle nasıl doğru bir şekilde dolduracağımı söyler misiniz? Fikir, başka bir enstrümanın verilerine göre oluşturulmuş aynı göstergeyi mevcut enstrümanın penceresinde çağırabilmektir.
Sonuç olarak, veri arabelleği boştur, grafik oluşturulmaz. Renk arabelleği önemli değildir.
//---- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_plots1#property indicator_type1DRAW_COLOR_HISTOGRAM#property indicator_color1 Green,Red
#property indicator_style10#property indicator_width13//--- input datainputstring OtherSymbol= "" ; //Название символа, по которому считать. Если пусто - текущий символ//---- indicator buffersdouble DataBuffer[];
double ColorsBuffer[];
//---- external indicator handleint CustomHandle= 0 ;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit ()
{
SetIndexBuffer ( 0 ,DataBuffer, INDICATOR_DATA );
SetIndexBuffer ( 1 ,ColorsBuffer, INDICATOR_COLOR_INDEX );
IndicatorSetString ( INDICATOR_SHORTNAME , "PercentChangeHistogram" );
IndicatorSetInteger ( INDICATOR_DIGITS , 2 );
//----if (OtherSymbol!= "" ) //если есть имя другого символа, рекурсивно вызываем индикатор через iCustom
{
CustomHandle= iCustom (OtherSymbol, _Period , "PercentChangeHistogram" , "" );
if (CustomHandle==- 1 )
{ Alert ( "iCustom function initialization failed!" );
return ( INIT_FAILED );}
}
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| OnCalculate |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
if (rates_total< 2 )
return ( 0 );
int start=prev_calculated- 1 ;
if (start< 1 ) start= 1 ;
//---if (OtherSymbol== "" ) // если input переменная содержит пустую строку, заполняем индикаторный массив через простой расчет функцией CalculateData// если input переменная содержит не пустую строку, пытаемся заполнить индикаторный массив копированием данных другого индикатора
CalculateData(start,rates_total,open,close);
elseCopyBuffer (CustomHandle, 0 ,start,rates_total-prev_calculated,DataBuffer);
//---return (rates_total);
}
...
Konumdan kaynaklanan yazışmalarınızı okudum, tabii ki hepsi eğlenceli :-) ama bu kaynamaya neden olan soru ne olacak?
SetIndexBuffer(1, tmp1) aracılığıyla bir dizi bildirmek hiçbir şey yapmaz. Tabii ki aynı döngüde dizi boyutunu artırabilirim ama daha basit ve verimli bir yol bilmek istiyorum.
Yap. Sonra buradaki kod.
Bu arada, Artem.
Eldeki görev hemen ilginç bir soruyu gündeme getirdi.
TÜMÜNÜ kontrol etmek için bir "veri içe aktarma" prosedürüne ihtiyacınız vardır.
Yani, üçüncü taraf kaynaklardan kendi dinamik verilerinizi dinamik dizilere eklemelisiniz.
MT4/MT5'in bu prosedürü olup olmadığını bilmiyorum - yoksa değil mi?
MT4/MT5'e nasıl veri aktarılır?
Hatta mümkün mü???
-------------------------------------------------- -----------------
Yalnızca bir diziden veri okumakla değil, dinamik verileri içe aktarmakla ilgileniyorum.
-------------------------------------------------- -------------------------------------------------- -----------
Bu arada, burada http://tol64.blogspot.com/2015/12/easy-and-fast-gui-mql.html bu içe aktarma yapım gereği olmalıdır.
Basitçe, onsuz yapamazsınız.
-------------------------------------------------- -------------------------------------------
MT4/MT5'te veya uzantılarında herhangi bir içe aktarma görmüyorum.
Bana bir ithalat ver!!!
Brad sert, forumun yıllıklarına girmeye değer.
" Ay, Pug! onun güçlü olduğunu bil
Filde ne havlar!”
https://ru.wikisource.org/wiki/%D0%A1%D0%BB%D0%BE%D0%BD_%D0%B8_%D0%9C%D0%BE%D1%81%D1%8C%D0 %BA%D0%B0_(%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2)
Alexey!
Ben sizden, bir forumda, bir pirzola yapacağım !!!
Afedersiniz!
Tünaydın!
Lütfen bana iCustom aracılığıyla adlandırılan başka bir göstergenin arabelleğinden kopyalayarak gösterge arabelleğini verilerle nasıl doğru bir şekilde dolduracağımı söyler misiniz? Fikir, başka bir enstrümanın verilerine göre oluşturulmuş aynı göstergeyi mevcut enstrümanın penceresinde çağırabilmektir.
Sonuç olarak, veri arabelleği boştur, grafik oluşturulmaz. Renk arabelleği önemli değildir.
Brad sert, forumun yıllıklarına girmeye değer.
Alexey!
Hangi ticaret deneyimine sahipsiniz? -
- Hiçbiri?
Daha önce, tüccarlar basit ve net bir şekilde konuşuyordu?
- Hesabınız nedir, Alexei - artı veya eksi olarak ve kaç yaşındasınız?
- Yoksa hiç ticaret hesabınız yok mu?
- Yoksa sadece beyinsiz misiniz ve diğer tüccarlara öğretmeye mi karar verdiniz?
- Onlardan çok var.
-------------------------------------------------- ------------------------------------
- Ve bir tüccar hesabım var ve oldukça değerli. 20 yıl önce. Ve kimseye öğretmeyeceğim.
- İşte böyle bir paradoks.
Alexey!
Hangi ticaret deneyimine sahipsiniz? -
- Hiçbiri?
Daha önce, tüccarlar basit ve net bir şekilde konuşuyordu?
- Hesabınız nedir, Alexei - artı veya eksi olarak ve kaç yaşındasınız?
- Yoksa hiç ticaret hesabınız yok mu?
- Yoksa sadece beyinsiz misiniz ve diğer tüccarlara öğretmeye mi karar verdiniz?
- Onlardan çok var.
-------------------------------------------------- ------------------------------------
- Ve bir tüccar hesabım var ve oldukça değerli. 20 yıl önce. Ve kimseye öğretmeyeceğim.
- İşte böyle bir paradoks.
Size madalyonun teknik tarafında bir cevap verildi ve bu, ticaretin kalitesi ile hiç ilişkilendirilmemelidir.
Size madalyonun teknik tarafında bir cevap verildi ve bu, ticaretin kalitesi ile hiç ilişkilendirilmemelidir.
Niye ya?
Yoksa tüccarların piyasada bahis oynayan ve bahis oynayan "okuma yazma bilmeyen aptallar" olduğunu mu düşünüyorsunuz?
O zaman ben onlardan biriyim.
Sadece dx'in integralini zorlanmadan alıyorum. peki sen? - Ne, sorunlar mı çıktı?
Bu forumdaki diğer birçok "uzman" gibi, açıkça bir tüccar değilsiniz!
Bir tüccar için, FOREX piyasası HER ZAMAN DOĞRU olan “kutsal inek”tir.
Fikrinizi bu pazarda ilerletebilirseniz, bir kahramansınız!
Piyasa sizi devirirse, sizi neyin beklediğini kendiniz anlarsınız!
-------------------------------------------------- -------------------------------------------------- ----
Ama Forex piyasasında kimse yasaklı değil - başka bir paradoks!!!
Haklı ya da haksız, fark etmez! Her şey için ödenen!!!
Tekrar. Resme dikkatlice bakıyoruz:
Bahşiş için teşekkürler.
Niye ya?
Yoksa tüccarların piyasada bahis oynayan ve bahis oynayan "okuma yazma bilmeyen aptallar" olduğunu mu düşünüyorsunuz?
O zaman ben onlardan biriyim.
Sadece dx'in integralini zorlanmadan alıyorum. peki sen? - Ne, sorunlar mı çıktı?
Bu forumdaki diğer birçok "uzman" gibi, açıkça bir tüccar değilsiniz!
Bir tüccar için, FOREX piyasası HER ZAMAN DOĞRU olan “kutsal inek”tir.
Fikrinizi bu pazarda ilerletebilirseniz, bir kahramansınız!
Piyasa sizi devirirse, sizi neyin beklediğini kendiniz anlarsınız!
-------------------------------------------------- -------------------------------------------------- ----
Ama Forex piyasasında kimse yasaklı değil - başka bir paradoks!!!
Haklı ya da haksız, fark etmez! Her şey için ödenen!!!
Sen diziler hakkında ve sen forex hakkında. Yine de paradoks!
- Ve bir tüccar hesabım var ve oldukça değerli. 20 yıl önce. Ve kimseye öğretmeyeceğim.
- İşte böyle bir paradoks.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu
Artyom Trishkin , 2018.10.17 18:00
Yaşım dediğin duygu, deneyim değil.Konumdan kaynaklanan yazışmalarınızı okudum, tabii ki hepsi eğlenceli :-) ama bu kaynamaya neden olan soru ne olacak?
SetIndexBuffer(1, tmp1) aracılığıyla bir dizi bildirmek hiçbir şey yapmaz. Tabii ki aynı döngüde dizi boyutunu artırabilirim ama daha basit ve verimli bir yol bilmek istiyorum.