jarikn : Beyler, göstergeye bir uyarı yapmama yardım edin. Farklı göstergelerin bir kombinasyonunu test etmek istiyorum, ancak bir uyarı işlevine ihtiyacım var. Ok göründüğünde uyarının sadece 1 kez gösterilmesi gerekir . Sizin için zor değilse, o zaman böyle bir fonksiyon yazmama yardım edin, aksi halde benim için çalışmıyor, MT4'ün donması kadar bir dakika boyunca veya her zaman bir uyarı çıkıyor.
Bir soru daha. Bu gösterge neden işlemciyi yoğun bir şekilde yüklüyor? 10 döviz çifti açarsınız ve MT4'ün nasıl askıda kaldığını gösterirsiniz. bir şekilde düzeltebilir miyim? Ve bunu bir gösterge olarak değil de bir danışman olarak yaparsanız, bu şekilde de yavaşlar mı?
Merhaba! Bir gösterge var - trendin açısını derece cinsinden gösterir (yine de normalleştirilmemiştir). Tabloda her şey harika. En azından açının tam eğrisinde (mavi), en azından ortasındaki (yeşil) - Şekil 1. Ancakgösterge, double Custom = iCustom(Symbol(), window, "Angle" aracılığıyla danışmana çağrıldığında ) , 0, 1), saçmalık üretir - bazı büyük sayılar - Şekil 2. Burada pencere grafik periyodudur, "Açı" göstergenin adıdır, 0 mavi çizginin hesaplandığı sıfır arabelleğidir (koyabilirsiniz) 1 - yeşil MA arabelleği, ancak sonuç benzer olacaktır), 1 - vardiya. Sorun ne olabilir?
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Bir danışman yazdım , her şey çalışıyor gibi görünüyor. Ancak gerçek şu ki, siparişler hareketli ortalamaların kesiştiği noktada kapatılmalıdır. Ama kapanmazlar veya daha doğrusu, yalnızca ilk sıra kapanır ve hangi yönde olduğu önemli değildir ve daha sonra günlükte bir hata verir - OrderClose hatası 4051. Sorun nedir?
//-----------------------------------------------------------if (CountSell() == 0 && mama1<mama2 && cci>verh && cci1>verh && cci<cci1)
{
tiket = OrderSend ( Symbol (), OP_SELL,Lots,Bid,Slippage, 0 , 0 , "" ,Magic, 0 , Red);
if (tiket> 0 )
{
SL= NormalizeDouble (Bid+StopLoss* Point , Digits );
TP= NormalizeDouble (Bid-TakeProfit* Point , Digits );
if ( OrderSelect (tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP, 0 ))
Print ( "Ошибка модификации ордера на продажу" );
} elsePrint ( "Ошибка открытия ордера на продажу" );
}
if (CountBuy() == 0 && mama1>mama2 && cci<nuz && cci1<nuz && cci>cci1)
{
tiket = OrderSend ( Symbol (), OP_BUY,Lots,Ask,Slippage, 0 , 0 , "" ,Magic, 0 ,Blue);
if (tiket> 0 )
{
SL= NormalizeDouble (Ask-StopLoss* Point , Digits );
TP= NormalizeDouble (Ask+TakeProfit* Point , Digits );
if ( OrderSelect (tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP, 0 ))
Print ( "Ошибка модификации ордера на покупку" );
} elsePrint ( "Ошибка открытия ордера на покупку" );
}
if (mama1>mama2 && CountSell()> 0 )
{
for ( int i = OrdersTotal () - 1 ;i>= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)
OrderClose(OrderType(),OrderLots(),Ask,Slippage,Black);
}
}
}
if (mama1<mama2 && CountBuy()> 0 )
{
for ( int i = OrdersTotal () - 1 ;i>= 0 ; i--)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
OrderClose(OrderType(),OrderLots(),Bid,Slippage,Black);
}
}
}
Bunu dene, çalışması gerekir
Hayır. sürekli bip uyarısı verir. İşte tüm kod ve hindiler. belki yanlış bir şey yapıyorum
Beyler, göstergeye bir uyarı yapmama yardım edin. Farklı göstergelerin bir kombinasyonunu test etmek istiyorum, ancak bir uyarı işlevine ihtiyacım var. Ok göründüğünde uyarının sadece 1 kez gösterilmesi gerekir . Sizin için zor değilse, o zaman böyle bir fonksiyon yazmama yardım edin, aksi halde benim için çalışmıyor, MT4'ün donması kadar bir dakika boyunca veya her zaman bir uyarı çıkıyor.
Değişken ekle
sinyal değilse değişken yanlış olur
if (sinyal ve değişken== yanlış ) {
uyarmak;
değişken=doğru;
}
Değişken ekle
yeni bir mum belirirse değişken yanlış olur
if (sinyal ve değişken== yanlış ) {
uyarmak;
değişken=doğru;
}
mum başına 1'den fazla olmayacakTAMAM. Teşekkür ederim
TAMAM. Teşekkür ederim
orada değiştim
Merhaba! Bir gösterge var - trendin açısını derece cinsinden gösterir (yine de normalleştirilmemiştir). Tabloda her şey harika. En azından açının tam eğrisinde (mavi), en azından ortasındaki (yeşil) - Şekil 1. Ancak gösterge, double Custom = iCustom(Symbol(), window, "Angle" aracılığıyla danışmana çağrıldığında ) , 0, 1), saçmalık üretir - bazı büyük sayılar - Şekil 2. Burada pencere grafik periyodudur, "Açı" göstergenin adıdır, 0 mavi çizginin hesaplandığı sıfır arabelleğidir (koyabilirsiniz) 1 - yeşil MA arabelleği, ancak sonuç benzer olacaktır), 1 - vardiya. Sorun ne olabilir?
Lütfen bana bir nesneyi programlı olarak nasıl seçeceğimi söyler misiniz? Yardımda benzer bir şey bulamadım
OBJPROP_SELECTED
nesne seçimi
mql5
mql4
Lütfen bana bir nesneyi programlı olarak nasıl seçeceğimi söyler misiniz? Yardımda benzer bir şey bulamadım
Standart nesne oluşturma işlevini kullanırsanız, varsayılan parametrelerde seçim = true olur. Örneğin, bir trend çizgisi için alttan 4. çizgi: