Özellikler İletişim Kutusu aracılığıyla Grafik Nesnenin Özelliklerini Değiştirme
"sparam" parametresi değiştirilen nesnenin adını döndürür. Nesne size aitse, nesneniz için kritik olan özellikleri kontrol edin.
Objesiz olarak fiyatı biliyoruz, çizgi bu, değişip değişmediğini kontrol etmemiz gerekiyor, bu fiyatı karşılaştırmamız gerektiği açık, nasıl bilmiyorum)
Objesiz olarak fiyatı biliyoruz, çizgi bu, değişip değişmediğini kontrol etmemiz gerekiyor, bu fiyatı karşılaştırmamız gerektiği açık, nasıl bilmiyorum)
Ne gibi
ölçüm nereden alınır2))
son çubuktaki fiyat Fiyat2 olacaktır, Teklifi, seçim yapmak için önceki çubuğun herhangi bir fiyatıyla karşılaştırın - Aç, Kapat, Merhaba, Düşük.
Ara fiyatlar istiyorsanız, tıklama geçmişini kaydetmeniz ve oradan önceki fiyatı almanız gerekir, o zaman Teklif bir önceki fiyatın fiyatı ile karşılaştırılır.
Ve fiyat normalleşmesinin amacı nedir? hesaplanan değerleri normalleştirmeniz gerekir, bu daha sonra ticaret emirlerine gider ve fiyat zaten normalleştirilmiştir.
#property strict/******************************************************************************/bool AddValue( double &array[], constdouble value) {
constint size = ArraySize (array);
if ( ArrayResize (array, size + 1 ) != size + 1 ) {
returnfalse ; // Ошибка, значение не может быть добавлено к массиву
}
array[size] = value; //записываемreturntrue ; // Нет ошибки, значение добавлено к массиву
}
/******************************************************************************/bool AddValueIfFound( double &array[], conststring name) {
constint type = ObjectType(name);
if (type == OBJ_TREND ) {
switch (( color )ObjectGet(name, OBJPROP_COLOR )) { // Тип color допустимо использовать в switchcase Goldenrod:
case Gainsboro:
case White:
if (!AddValue(array, ObjectGetValueByShift(name, 1 ))) {
returnfalse ; // Ошибка, значение найдено, но не может быть добавлено к массиву
}
}
}
returntrue ; // Нет ошибки, значение, если найдено, добавлено к массиву
}
/******************************************************************************/bool MassTrendNumber( double &array[], constbool buy) { // Поиск значения цены трендовой линии, текущего бара, запись в массив. Два массива: masS и masBconststring subname = (buy ? "uptrendline" : "downtrendline" ); // существует два названия трендовых линий, первое и второеif ( ArrayResize (array, 0 ) != 0 ) {
returnfalse ; // Ошибка, массив не может быть заполнен достоверно
}
for ( int i = 0 , limit = ObjectsTotal ( OBJ_TREND ); i < limit; i++) {
if (!AddValueIfFound(array, subname + IntegerToString (i))|| !FilTrenLin(subname+IntegerToString(i) )) { \\ Вот куда вставилreturnfalse ; // Ошибка, массив, если и заполнен, то недостоверно
}
}
returntrue ; // Нет ошибки, массив заполнен достоверно
}
/*** ** *** ******** **** *** **** **** *** *** *** *** **** **** **** **** **** **** *** **** */boolFilTrenLin( string name) {
conststring dt_123 = TimeToStr( TimeCurrent (),TIME_SECONDS); //constdatetime vremnin= StrToTime(dt_123); // Присваиваем время в секундах constdatetime vrem2kor= ObjectGet(name,OBJPROP_TIME2); // время второй координатыMqlDateTime str1;
TimeToStruct (vrem2kor,str2);
constint PjatPon=str1.sec;
if (PjatPon+ 3600 >=vremnin){ \\ если время 2-ой координаты + час > времени нынешнего то блокируем запись в массивPrint ( " PjatPon " , PjatPon, " vremnin " ,vremnin, " vrem2kor " ,vrem2kor);
returnfalse ;
}
returntrue ;
}
/******************************************************************************/void FillAndPrint( double &array[], constbool buy) {
if (MassTrendNumber(array, buy)) {
constint limit = ArraySize (array);
Print ( "Найдено объектов: " , limit);
for ( int i = 0 ; i < limit; i++) {
Print ( "Price[" , i, "] = " , DoubleToStr(array[i], Digits ));
}
} else {
Print ( "Чёрт!" );
}
}
Bunu küstahlık olarak algılamayın, zaten nasıl başvuracağımı bile bilmiyorum ama hiçbir şey yapamıyorum. Bir dizi derlemek mümkün olsaydı, yapacak bir şey olmadığı için sinyali filtrelemek için koşulları puanlayın diye düşündüm.
Bunu küstahlık olarak algılamayın, zaten nasıl başvuracağımı bile bilmiyorum ama hiçbir şey yapamıyorum. Bir dizi derlemek mümkün olsaydı, yapacak bir şey olmadığı için, sinyal filtrelemeden itibaren koşulları puanlamayı düşündüm.
TimeCurrent() işlevi aşırı yüklenmiş. Datetime türünün ne olduğuna dair açıklamayı okursanız, işlevin ilk sürümünün oldukça uygun olduğu ortaya çıkıyor:
Öte yandan, zaman noktalarındaki farkı almak için değil, bu anları karşılaştırmak için gidebilirsiniz (aynı zamanda koşullu ifadeyi tekrar uygulayacağız):
01 : 30 : 29 Script 2 EURUSDm,H1: loaded successfully
01 : 30 : 292 EURUSDm,H1: initialized
01 : 30 : 312 EURUSDm,H1: Момент времени dt НЕ достигнут
01 : 30 : 332 EURUSDm,H1: Момент времени dt НЕ достигнут
01 : 30 : 352 EURUSDm,H1: Момент времени dt достигнут
01 : 30 : 382 EURUSDm,H1: Момент времени dt достигнут
01 : 30 : 382 EURUSDm,H1: uninit reason 001 : 30 : 38 Script 2 EURUSDm,H1: removed
Uygulanan fikirlerin özünü anladıktan ve ayrıca, tarih saat türünün ne olduğunu hatırladıktan sonra, gerekli doğruluk saniye birimlerini geçmiyorsa, zaman noktalarıyla çalışmak artık zorluklara neden olmamalıdır.
TimeCurrent() işlevi aşırı yüklenmiş. Datetime türünün ne olduğuna dair açıklamayı okursanız, işlevin ilk sürümünün oldukça uygun olduğu ortaya çıkıyor:
Koşmak şunları sağlar:
Öte yandan, zaman noktalarındaki farkı almak için değil, bu anları karşılaştırmak için gidebilirsiniz (aynı zamanda koşullu ifadeyi tekrar uygulayacağız):
Koşmak şunları sağlar:
Uygulanan fikirlerin özünü anladıktan ve ayrıca, tarih saat türünün ne olduğunu hatırladıktan sonra, gerekli doğruluk saniye birimlerini geçmiyorsa, zaman noktalarıyla çalışmak artık zorluklara neden olmamalıdır.
Dürüst olmak gerekirse, nasıl başvuracağımı anlamadım. Milimetrenin sonuna kadar kalıyor, neredeyse her şey bittiğinde durmak ayıp.
Görev, nesnenin zamanı (2. parametre+3600sn>akım)||(1. parametrenin zamanı - 2. parametrenin zamanı)<3600sn ise fiyatı diziye yazmak değildir.
/******************************************************************************/bool MassTrendNumber( double &array[], constbool buy) { // Поиск значения цены трендовой линии, текущего бара, запись в массив. Два массива: masS и masBconststring subname = (buy ? "uptrendline" : "downtrendline" ); // существует два названия трендовых линий, первое и второеif ( ArrayResize (array, 0 ) != 0 ) {
returnfalse ; // Ошибка, массив не может быть заполнен достоверно
}
for ( int i = 0 , limit = ObjectsTotal ( OBJ_TREND ); i < limit+ 2 ; i++) {
if (!AddValueIfFound(array, subname + IntegerToString (i)) ||!FilTrenLin(subname + IntegerToString (i)) { // Условие вставил вот сюдаreturnfalse ; // Ошибка, массив, если и заполнен, то недостоверно
}
}
returntrue ; // Нет ошибки, массив заполнен достоверно
}
/***************************************************************************/bool FilTrenLin( string name) {
constdatetime dt = TimeCurrent ();
constdatetime dt1 = ObjectGet(name,OBJPROP_TIME1);
constdatetime dt2 = ObjectGet(name,OBJPROP_TIME2);
Print ( " DiffInSecs(dt,dt2) " , DiffInSecs(dt,dt2), " DiffInSecs(dt2,dt1)) " ,DiffInSecs(dt2,dt1), " dt1 " ,dt1);
if (DiffInSecs(dt,dt2)< 3600 ||DiffInSecs(dt2,dt1)< 3600 ) // Если время объекта второго параметра + 3600 сек > текущего времени,
или если разница первого и второго параметра времени объекта < 3600 сек, то запускаем ошибку, чтоб цена не записалась в массив.
{ returnfalse ;
}
returntrue ;
}
/******************************************************************************/long DiffInSecs( constdatetime dt1, constdatetime dt2) {
return dt1 - dt2;
}
Evet, çok teşekkür ederim, nasıl yardım ettiğinize dair hiçbir kelimeniz yok, her şey açık! Güzel!!!
Önemli becerileri yavaş yavaş en doğrudan ve etkili bir şekilde kendi başınıza öğrenebilirseniz harika olur.
Ve başkaları da aynı şekilde faydalanabilirse.
Che düşünmüyor) bir çizgi var Ve bu çizginin değişip değişmediğini nasıl kontrol edeceğim
Che düşünmüyor) bir çizgi var Ve bu çizginin değişip değişmediğini nasıl kontrol edeceğim
CHARTEVENT_OBJECT_CHANGE
Özellikler İletişim Kutusu aracılığıyla Grafik Nesnesinin Özelliklerini Değiştirme
CHARTEVENT_OBJECT_CHANGE
Özellikler İletişim Kutusu aracılığıyla Grafik Nesnenin Özelliklerini Değiştirme
Objesiz olarak fiyatı biliyoruz, çizgi bu, değişip değişmediğini kontrol etmemiz gerekiyor, bu fiyatı karşılaştırmamız gerektiği açık, nasıl bilmiyorum)
Ne gibi
ölçüm nereden alınır2))
Objesiz olarak fiyatı biliyoruz, çizgi bu, değişip değişmediğini kontrol etmemiz gerekiyor, bu fiyatı karşılaştırmamız gerektiği açık, nasıl bilmiyorum)
Ne gibi
ölçüm nereden alınır2))
son çubuktaki fiyat Fiyat2 olacaktır, Teklifi, seçim yapmak için önceki çubuğun herhangi bir fiyatıyla karşılaştırın - Aç, Kapat, Merhaba, Düşük.
Ara fiyatlar istiyorsanız, tıklama geçmişini kaydetmeniz ve oradan önceki fiyatı almanız gerekir, o zaman Teklif bir önceki fiyatın fiyatı ile karşılaştırılır.
Ve fiyat normalleşmesinin amacı nedir? hesaplanan değerleri normalleştirmeniz gerekir, bu daha sonra ticaret emirlerine gider ve fiyat zaten normalleştirilmiştir.
son çubuktaki fiyat Fiyat2 olacaktır
Ara fiyatlar istiyorsanız, tick geçmişini kaydetmeniz ve oradan önceki fiyatı almanız gerekir.
Hepsi anlaşıldı :)
Hayır, orada barlarla çalışmazdım
Aşağıdaki arama yöntemi biraz farklıdır:
Bunu küstahlık olarak algılamayın, zaten nasıl başvuracağımı bile bilmiyorum ama hiçbir şey yapamıyorum. Bir dizi derlemek mümkün olsaydı, yapacak bir şey olmadığı için sinyali filtrelemek için koşulları puanlayın diye düşündüm.
Bunu küstahlık olarak algılamayın, zaten nasıl başvuracağımı bile bilmiyorum ama hiçbir şey yapamıyorum. Bir dizi derlemek mümkün olsaydı, yapacak bir şey olmadığı için, sinyal filtrelemeden itibaren koşulları puanlamayı düşündüm.
TimeCurrent() işlevi aşırı yüklenmiş. Datetime türünün ne olduğuna dair açıklamayı okursanız, işlevin ilk sürümünün oldukça uygun olduğu ortaya çıkıyor:
Koşmak şunları sağlar:
Öte yandan, zaman noktalarındaki farkı almak için değil, bu anları karşılaştırmak için gidebilirsiniz (aynı zamanda koşullu ifadeyi tekrar uygulayacağız):
Koşmak şunları sağlar:
Uygulanan fikirlerin özünü anladıktan ve ayrıca, tarih saat türünün ne olduğunu hatırladıktan sonra, gerekli doğruluk saniye birimlerini geçmiyorsa, zaman noktalarıyla çalışmak artık zorluklara neden olmamalıdır.
TimeCurrent() işlevi aşırı yüklenmiş. Datetime türünün ne olduğuna dair açıklamayı okursanız, işlevin ilk sürümünün oldukça uygun olduğu ortaya çıkıyor:
Koşmak şunları sağlar:
Öte yandan, zaman noktalarındaki farkı almak için değil, bu anları karşılaştırmak için gidebilirsiniz (aynı zamanda koşullu ifadeyi tekrar uygulayacağız):
Koşmak şunları sağlar:
Uygulanan fikirlerin özünü anladıktan ve ayrıca, tarih saat türünün ne olduğunu hatırladıktan sonra, gerekli doğruluk saniye birimlerini geçmiyorsa, zaman noktalarıyla çalışmak artık zorluklara neden olmamalıdır.
Dürüst olmak gerekirse, nasıl başvuracağımı anlamadım. Milimetrenin sonuna kadar kalıyor, neredeyse her şey bittiğinde durmak ayıp.
Görev, nesnenin zamanı (2. parametre+3600sn>akım)||(1. parametrenin zamanı - 2. parametrenin zamanı)<3600sn ise fiyatı diziye yazmak değildir.