[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 636
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
İyi insanlar, yardım edin, çözemiyorum, TrailingStop olması gerektiği gibi çalışmıyor, SATIŞ'ta anlaşma açılırsa, iz iyi çalışıyor, ancak AL açılırsa, nedense hemen stop değiştirilebilir. Hatanın nerede olduğunu çözemiyorum.... İŞTE KOD:
harici int TP = 50;
harici int SL = 50;
extern int İzleyen = 15;
int init()
{dönüş(0);}
int tanım()
{dönüş(0);}
int başlangıç()
{
//========= Başabaş seviyesinin hesaplanması ======
int i;
çift lotBUY=0;
çift lotSEL=0;
çift toplamBUY=0;
çift toplamSEL=0;
(i=0; i<SiparişToplam(); i++) için
{
(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) devam ederse;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_BUY)
{
lotBUY=lotsBUY+SiparişLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
if (OrderType()==OP_SEL)
{
lotSEL=lotSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
çift fiyatAL=0;
if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
çift fiyatSEL=0;
if (lotsSEL!=0) fiyatSEL=sumSEL/lotsSEL;
//======== Bir pozisyon açma =====
çift MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Yeşil);
if (Sipariş Toplamı() < 1 && Sor<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
//======= İzleyen Durak =======
for(i = 0; i <= SiparişlerToplam(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_SELL && İzleyen!=0)
{
if(priceSEL-Ask>=Sondaki*Puan && OrderStopLoss()>(Sor+Sondaki*Puan))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0, CLR_NONE );
}
}
if (OrderType()==OP_BUY && İzleyen!=0)
{
if(Bid-priceBUY>=Sondaki*Puan && (Teklif Noktası*Sondaki)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE);
}
}
}
dönüş(0);
}
Öyle bir an var ki, TrailingStop bloğunda priceBUY'u OrderOpenPrice() olarak değiştirirseniz, her şey çalışır, ancak bunun açılış fiyatından değil, başabaş seviyesinden takip etmesine ihtiyacım var ..... SAT üzerinde çalışır, ama nedense satın almıyor .... Hatanın nerede olduğunu anlamıyorum ..... SOS !!!!!!!!
Bu bir hata değildir - bu, min. denge - yani sayı birleştirilir - geçiş sona erer ve bir sonraki giriş parametreleri grubuyla yenisi başlar - Test Cihazı optimizasyon sekmesinin onay kutularına ve ayarlanmış sınır değerlerine bakın:
Tünaydın!! Danışmanım bu yerdeki siparişleri kaldırır.
Burada, her şey yolunda görünmeden önce - 2-5 sipariş varken her durumda normal şekilde temizledim. Burada ve yeni sürümde istediğiniz sipariş türü 20, 50 adet her iki tarafta da var. Kısacası temizlemiyor. Eh, iki, üç, dört kez temizler ve sonra aniden hayır!!!
Test cihazında nasıl göründüğü ilginçtir - genel olarak, fiyatın yakınında bir dizi siparişi kaldırır, ancak hepsini değil!! Hangi sapkınlıklar öngörülebilir, icat edilebilir, hayal edilebilir, neyin kapatılacağı kesindir?![](https://c.mql5.com/mql4/forum/2012/03/yjjqrsyjax-qapusv_small.png)
Doğru, peki, her şey eskisi gibi miydi? Daha önce kapandı mı? Başka neye ihtiyacı var?????
İyi insanlar, yardım edin, çözemiyorum, TrailingStop olması gerektiği gibi çalışmıyor, SATIŞ'ta anlaşma açılırsa, iz iyi çalışıyor, ancak AL açılırsa, nedense hemen stop değiştirilebilir. Hatanın nerede olduğunu çözemiyorum.... İŞTE KOD:
extern int TP = 100;
extern int SL = 100;
extern int Trailing = 15;
int init()
{return(0);}
int deinit()
{return(0);}
int start()
{
//========= Расчёт уровня безубытка ======
int i;
double lotsBUY=0;
double lotsSEL=0;
double sumBUY=0;
double sumSEL=0;
for (i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY)
{
lotsBUY=lotsBUY+OrderLots();
sumBUY=sumBUY+OrderLots()*OrderOpenPrice();
}
if (OrderType()==OP_SELL)
{
lotsSEL=lotsSEL-OrderLots();
sumSEL=sumSEL-OrderLots()*OrderOpenPrice();
}
}
double priceBUY=0;
if (lotsBUY!=0) priceBUY=sumBUY/lotsBUY;
double priceSEL=0;
if (lotsSEL!=0) priceSEL=sumSEL/lotsSEL;
//======== Открытие позиции =====
double MA=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,0);
if (OrdersTotal() < 1 && Bid>MA)
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
if (OrdersTotal() < 1 && Ask<MA)
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+SL*Point,Bid-TP*Point,0,0,0,Red);
//======= Trailing Stop =======
for(i = 0; i <= OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_SELL && Trailing!=0)
{
if(priceSEL-Ask>=Trailing*Point && OrderStopLoss()>(Ask+Trailing*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Trailing*Point,OrderTakeProfit(),0,CLR_NONE);
}
}
if (OrderType()==OP_BUY && Trailing!=0)
{
if(Bid-priceBUY>=Trailing*Point && (Bid-Point*Trailing)>OrderStopLoss())
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,CLR_NONE);
}
}
}
return(0);
}
İyi insanlar, yardım edin, çözemiyorum, TrailingStop olması gerektiği gibi çalışmıyor, SATIŞ'ta anlaşma açılırsa, iz iyi çalışıyor, ancak AL açılırsa, nedense hemen stop değiştirilebilir. Hatanın nerede olduğunu çözemiyorum.... İŞTE KOD:
Öyle bir an var ki, TrailingStop bloğunda priceBUY'u OrderOpenPrice() olarak değiştirirseniz, o zaman her şey çalışır, ancak açılış fiyatından değil, başabaş seviyesinden izlemem gerekir..... SAT üzerinde çalışır, ancak nedense satın almıyor .... Hatanın nerede olduğunu anlamıyorum ..... SOS !!!!!!!!
Tünaydın!! Danışmanım bu yerdeki siparişleri kaldırır.
Burada, her şey yolunda görünmeden önce - 2-5 sipariş varken her durumda normal şekilde temizledim. Burada ve yeni sürümde istediğiniz sipariş türü 20, 50 adet her iki tarafta da var. Kısacası temizlemiyor. Eh, iki, üç, dört kez temizler ve sonra aniden hayır!!!
Test cihazında nasıl göründüğü ilginçtir - genel olarak, fiyatın yakınında bir dizi siparişi kaldırır, ancak hepsini değil!! Hangi sapkınlıklar öngörülebilir, icat edilebilir, hayal edilebilir, neyin kapatılacağı kesindir?
Doğru, peki, her şey yoluna girmeden önce ??? Daha önce kapandı mı? Başka neye ihtiyacı var?????
Eh, bu işe yaramayacak.
Emir kapatılana kadar, OrderClosePrice 0'a eşittir ve emri kapattığınız gerçek fiyatı değiştirmelisiniz, yani. SATIŞ emri ve AL için Teklif verilmesi durumunda sorun.
Eh, bu işe yaramayacak.
Emir kapatılana kadar, OrderClosePrice 0'a eşittir ve emri kapattığınız gerçek fiyatı değiştirmelisiniz, yani. SATIŞ emri ve AL için Teklif verilmesi durumunda sorun.
hayır, kapatılmamış bir sipariş için OrderClosePrice() sıfırdan farklı - kontrol edin. OrderCloseTime() - evet