StopLoss =MathMin( s0 , s1 );//Функция возвращает минимальное из двух числовых значенийif( StopLoss -Ask< StopLevel -0.5*Point) StopLoss =MathMax( s0 , s1 );
//StopLoss может присвоиться новое значение, желательно и его проверить на StopLevelOrderModify(OrderTicket(),OrderOpenPrice(), StopLoss ,OrderTakeProfit(),0,Red);
genel olarak, çarpık çıkıyor, düşünmeniz gerekiyor)
Ayrıca ticaret akışını da kontrol etmeniz gerekiyor, aksi takdirde meşgul olduğu için hatalar da akıyor TradeDispatcher: ticaret bağlamı meşgul ... Danışmanın çok sayıda kopyası varsa, o zaman hepsinin bir sinyalde olduğu ortaya çıkıyor. , mevcut siparişleri sembollerine kapatın ve yenilerini yerleştirin ... mantar oluşur)
bu muhtemelen mümkün..
//-------Поиск входа для установки ордеров, удаление старых ордеров и установка новыхvoid UpTrend (){if((iOpen(NULL,PERIOD_H4,1)-iClose(NULL,PERIOD_H4,1)<=0)&&(iOpen(NULL,PERIOD_H4,2)-iClose(NULL,PERIOD_H4,2)>0)){
Enter =iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;if(IsTradeAllowed()){
DellAllOrders ();if(Ask< Enter - StopLevel +0.5*Point){OrderSend(Symbol(),OP_BUYSTOP,0.1, Enter ,0,0, Enter + Profit ,0,0,0,Green);}elseSleep(1000);}}}void DownTrend (){if((iOpen(NULL,PERIOD_H4,1)-iClose(NULL,PERIOD_H4,1)>=0)&&(iOpen(NULL,PERIOD_H4,2)-iClose(NULL,PERIOD_H4,2)<0)){
Enter =iLow(NULL,PERIOD_H4,1)-10*Point;if(IsTradeAllowed()){
DellAllOrders ();if(Bid> Enter + StopLevel -0.5*Point){OrderSend(Symbol(),OP_SELLSTOP,0.1, Enter ,0,0, Enter - Profit ,0,0,0,Green);}elseSleep(1000);}}}
onlar. mevcut emri kapatıp yeni bir bekleyen emir vermeden önce işlem akışını kontrol ederiz.Duraklama 1 sn ise.
Ayrıca ticaret akışını da kontrol etmeniz gerekiyor, aksi takdirde meşgul olduğu için hatalar da akıyor ... çünkü. çok grafik varsa, hepsi aynı anda mevcut siparişleri kapatır...
int start (){if(!IsTradeAllowed())return(0);
yardımcı olmazsa, tüm OrderSend,OrderModify,OrderClose,OrderDelete'den önce IsTradeContextBusy() öğesini kontrol edin.
Alex2008>> : Ama tam olarak nereye yapıştıracağım ki, doğru olsun diye düşünürken... Aksi takdirde örneğin eski siparişleri silmez çünkü. iş parçacığı meşgul, ancak yenilerini ayarlayacak .. ve duruma göre, yalnızca tüm eski siparişler silindiğinde yenilerini koymanız gerekir.
yeniden yazmak daha kolay. UpTrend() ve DownTrend() fonksiyonlarında kontrol koşulları, siparişler kaldırılır ve yerleştirilir,
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Öyleydi
true StopLoss'a yeni bir değer atanırsa,
aksi takdirde sipariş değiştirilir.
hata yok, ama nada ya da haçı çıkar ya da pantolonunu giy)
Hemen anlamadım)) ... durum nedeniyle, stop ayarlanmamış olabilir!
Belki sadece başka kaldırmak? Mantık acı çekmiyor gibi... İkinci koşul yeterliyse neden gerekli?
Ya da öyle...
gerçek sayıların karşılaştırmasına bakın.
okudum ... yani bu gerekli mi? Sadece hiç yapmadım.)
Hemen anlamadım... Durumdan dolayı stop ayarlanmamış olabilir!
Belki sadece başka kaldırmak? Mantık acı çekmiyor gibi görünüyor ...
öyle olabilir. muhtemelen) 4h mum genellikle StopLevel'den daha fazladır
okudum ... yani bu gerekli mi? Sadece hiç yapmadım.)
karşılaştırılan miktarlar neredeyse eşit olduğunda her türlü anlaşılmazlık ortaya çıkar)
eşitlik için bir sayı tipini kontrol ederken double - gerekli.
ingilizce: StopLoss eksi Ask, 0,5*Puan doğrulukla StopLevel'den daha azdır
(StopLoss,Sor,StopLevel -normalleştirilmiş)
Peki bu seçenek ne olacak? Bırakmak iyi bir fikir gibi görünüyor.
Ayrıca ticaret akışını da kontrol etmeniz gerekiyor, aksi takdirde meşgul olduğu için hatalar da akıyor TradeDispatcher: ticaret bağlamı meşgul ... Danışmanın çok sayıda kopyası varsa, o zaman hepsinin bir sinyalde olduğu ortaya çıkıyor. , mevcut siparişleri sembollerine kapatın ve yenilerini yerleştirin ... mantar oluşur)
bu muhtemelen mümkün..
onlar. mevcut emri kapatıp yeni bir bekleyen emir vermeden önce işlem akışını kontrol ederiz.Duraklama 1 sn ise.
Peki bu seçenek ne olacak? Bırakmak iyi bir fikir gibi görünüyor.
hayır, bu işe yarayacak. Sen karar vermelisin.)
üç seçenek:
ALex2008 yazdı >>
Ayrıca ticaret akışını da kontrol etmeniz gerekiyor, aksi takdirde meşgul olduğu için hatalar da akıyor ... çünkü. çok grafik varsa, hepsi aynı anda mevcut siparişleri kapatır...yardımcı olmazsa, tüm OrderSend,OrderModify,OrderClose,OrderDelete'den önce IsTradeContextBusy() öğesini kontrol edin.
Ama tam olarak nereye yapıştıracağım ki, doğru olsun diye düşünürken... Aksi takdirde örneğin eski siparişleri silmez çünkü. iş parçacığı meşgul, ancak yenilerini ayarlayacak .. ve duruma göre, yalnızca tüm eski siparişler silindiğinde yenilerini koymanız gerekir.
yeniden yazmak daha kolay. UpTrend() ve DownTrend() fonksiyonlarında kontrol koşulları, siparişler kaldırılır ve yerleştirilir,
çok fazla fsya farklı)
hayır, bu işe yarayacak. Sen karar vermelisin.)
Anlamıyorum - işe yarayacak mı, olmayacak mı?
Anlamıyorum - işe yarayacak mı, olmayacak mı?
* çalışmayacak.
son sürümünüzde
ilkinde if() StopLoss tanımlı değil.
* çalışmayacak.
son sürümünüzde
ilkinde if() StopLoss tanımlı değil.
peki bu nedir?
ilkinde, stop, 2 mumluk minimum (fiyata göre) en düşük değeri alır. emirden uzak
ikinci durumda ise, stop, 2 mumluk maksimum (fiyata göre) en düşük değeri alır. siparişe yakın
//здесь StopLoss нипанятно какой)
Tam olarak belirsiz olan nedir? Fonksiyona girerken sıfırdır. Belki anlamıyorum...
Yukarıda bir koşul var - Bir emir açıksa ve stop = 0 ise, o zaman bir stop koyarız
ve durdurma ayarı işlevinin kendisi