Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1095
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Bu kod MQL5'te mi yazılmış?
için (int i=0; i<SymbolCount; i++)
{
if (CountTrades() == 0) // Emir sayısı sıfıra eşit olmalıdır
{
if (((TypeLastHistOrder() == OP_BUY && FiyatCloseLastHistOrder(OP_BUY) < FiyatOpenLastHistOrder(OP_BUY)) ||
(TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) && MaxOpenOrders > OrdersTotal() )
// Son anlaşma kârsızsa, aynısı açılır, ancak artan lotla
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk ;
if (Tür == OP_SELL) Fiyat = LastBid ;
Parti = NormalizeDouble(LotsLastHistOrder()*Çarpan, 2);
bilet = OrderSend( Symbols[i] , Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0 && MaxOpenOrders > OrdersTotal() )
// Son ticaretin karı sıfırsa, aynısını aç
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk ;
if (Tür == OP_SELL) Fiyat = LastBid ;
Parti = NormalizeDouble(LotsLastHistOrder(), 2);
bilet = OrderSend( Symbols[i] , Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > FiyatOpenLastHistOrder(OP_BUY))
|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL)))
|| CountHistTrades() == 0)// Son işlem karlıysa, sipariş açılır
{
if (SignalBuy( Symbols[i] ) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend( Symbols[i] , OP_BUY, Lot, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (SignalSell( Symbols[i] ) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend( Symbols[i] , OP_SELL, Lot, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
}
}
}
OnTick'te kelimelerden sonra kod vb... MQL4'te yazılmıştır, ancak MQL5'e ihtiyacınız var mı?
Her OrderSend için MaxOpenOrders koşulu OrdersTotal() değerinden büyük olmamalıdır.
Prosedür kodu (OrderSymbol()==Symbol() denetimi kaldırıldı ve Kapat/Aç yerine iClose()/iOpen() tanıtıldı), kodun doğruluğunu kontrol etmedi:
//+------------------------------------------- --------------------+
int CountTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
int CountHistTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
bool SignalBuy( string Sym )
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if ( C > O ) döner(yanlış);
}
if ((iBarShift( Sym , 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
bool SignalSell( string Sym )
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if ( C < O ) dönüş(yanlış);
}
if ((iBarShift( Sym , 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
tarihsaat TimeLastHistOrder(int tipi = -1)
{
tarihsaat sonzaman = 0;
tarihsaat açıksaat=0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > geçen sefer)
{
lasttime = OrderCloseTime();
açılış zamanı = OrderOpenTime();
}
}
}
}
dönüş (açık zaman);
}
//+------------------------------------------- --------------------+
intTypeLastHistOrder()
{
tarihsaat = 0;
int türü = -1;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Sihirli)
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
type = OrderType();
}
}
}
}
dönüş(tür);
}
//+------------------------------------------- --------------------+
double LotsLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift lot = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderOpenTime() > zaman)
{
zaman = OrderOpenTime();
lot = OrderLots();
}
}
}
}
dönüş(lot);
}
//+------------------------------------------- --------------------+
double PriceCloseLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderClosePrice();
}
}
}
}
iade(fiyat);
}
//+------------------------------------------- --------------------+
double PriceOpenLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderOpenPrice();
}
}
}
}
iade(fiyat);
}
harici intExp = 1;
bilet = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, IntegerToString (Exp) , Magic);
Bu kod işinize yarar mı??? Burada tarih, geçerli olandan 10 dakika daha fazla olmalıdır (yani TimeCurrent() + minimum 600).
için (int i=0; i<SymbolCount; i++)
{
if (CountTrades() == 0) // Emir sayısı sıfıra eşit olmalıdır
{
if (((TypeLastHistOrder() == OP_BUY && FiyatCloseLastHistOrder(OP_BUY) < FiyatOpenLastHistOrder(OP_BUY)) ||
(TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) && MaxOpenOrders > OrdersTotal() )
// Son anlaşma kârsızsa, aynısı açılır, ancak artan lotla
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk ;
if (Tür == OP_SELL) Fiyat = LastBid ;
Parti = NormalizeDouble(LotsLastHistOrder()*Çarpan, 2);
bilet = OrderSend( Symbols[i] , Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0 && MaxOpenOrders > OrdersTotal() )
// Son ticaretin karı sıfırsa, aynısını aç
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk ;
if (Tür == OP_SELL) Fiyat = LastBid ;
Parti = NormalizeDouble(LotsLastHistOrder(), 2);
bilet = OrderSend( Symbols[i] , Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > FiyatOpenLastHistOrder(OP_BUY))
|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL)))
|| CountHistTrades() == 0)// Son işlem karlıysa, sipariş açılır
{
if (SignalBuy( Symbols[i] ) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend( Symbols[i] , OP_BUY, Lot, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (SignalSell( Symbols[i] ) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend( Symbols[i] , OP_SELL, Lot, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
}
}
}
OnTick'te kelimelerden sonra kod vb... MQL4'te yazılmıştır, ancak MQL5'e ihtiyacınız var mı?
Her OrderSend için MaxOpenOrders koşulu OrdersTotal() değerinden büyük olmamalıdır.
Prosedür kodu (OrderSymbol()==Symbol() denetimi kaldırıldı ve Kapat/Aç yerine iClose()/iOpen() tanıtıldı), kodun doğruluğunu kontrol etmedi:
//+------------------------------------------- --------------------+
int CountTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
int CountHistTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
bool SignalBuy( string Sym )
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if ( C > O ) döner(yanlış);
}
if ((iBarShift( Sym , 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
bool SignalSell( string Sym )
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if ( C < O ) dönüş(yanlış);
}
if ((iBarShift( Sym , 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
tarihsaat TimeLastHistOrder(int tipi = -1)
{
tarihsaat sonzaman = 0;
tarihsaat açıksaat=0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > geçen sefer)
{
lasttime = OrderCloseTime();
açılış zamanı = OrderOpenTime();
}
}
}
}
dönüş (açık zaman);
}
//+------------------------------------------- --------------------+
intTypeLastHistOrder()
{
tarihsaat = 0;
int türü = -1;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Sihirli)
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
type = OrderType();
}
}
}
}
dönüş(tür);
}
//+------------------------------------------- --------------------+
double LotsLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift lot = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderOpenTime() > zaman)
{
zaman = OrderOpenTime();
lot = OrderLots();
}
}
}
}
dönüş(lot);
}
//+------------------------------------------- --------------------+
double PriceCloseLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderClosePrice();
}
}
}
}
iade(fiyat);
}
//+------------------------------------------- --------------------+
double PriceOpenLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderOpenPrice();
}
}
}
}
iade(fiyat);
}
Birkaç hata veriyor, düzeltmek mümkün olmadı. Burada sorun ne?
//+------------------------------------------- --------------------+Beyler yardım edin. Stforex'ten MT4 platformunda işlem yapıyorum. Emirleri açarken, grafikte giriş seviyesini göstermez (noktalı çizgi yoktur) ve buna göre bir stop loss ayarlamak uygun değildir. Neyin yanlış olduğunu ve nasıl düzeltileceğini bilen var mı?
http://prntscr.com/chfa36
Ayarlar - çizelgeler - İşlem seviyelerini göster
Beyler, hangi işlev 65 hatasını döndürebilir?
http://prntscr.com/chfa36
Ayarlar - çizelgeler - İşlem seviyelerini göster
Bu özellik başlangıçta etkinleştirildi, ancak seviyeler hala grafikte görünmüyor
Birkaç hata veriyor, düzeltmek mümkün olmadı. Burada sorun ne?
OnTick'e ve LastAsk ve LastBid değişkenlerine kapanış ayracı eklemeyi unuttunuz. İşte hatasız derlenen kod, performansı kontrol etmedim:
//+------------------------------------------- --------------------+
//| BB1.mq4 |
//| Telif hakkı 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı 2016, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
dış çift Lot = 1; // Çok güzelsin
harici intExp = 1; // Son
harici int Bekle = 2; // Bir yöndeki mum sayısı
extern int Zaman Aşımı = 1; // Zaman aralığı
dış çift Çarpan = 3; // Çarpan
dış int kayma = 5; // kayma
harici int Sihir = 774274; // Büyü
extern int MaxOpenOrders = 1; // Maksimum sipariş sayısı
int bilet, Tür, SymbolCount;
çift fiyat, çok;
girdi dizisi TradeSymbols = "EURUSD_OP, GBPUSD_OP, AUDUSD_OP, NZDUSD_OP, USDCAD_OP, USDCHF_OP, GBPCAD_OP, AUDNZD_OP, CHFJPY_OP, GBPCHF_OP"; // ticaret sembolleri
stringSymbols[50]; // 50, olası maksimum karakter sayısıdır
//------------------------------------------------ --
int OnInit()
{
if (IsTesting() || !ExtractSymbols())
{
SembolSayı = 1;
Semboller[0] = Sembol();
}
dönüş(INIT_SUCCESSED);
}
//------------------------------------------------ --
bool ExtractSymbols()
{
ushort Virgül = StringGetCharacter(",", 0);
SymbolCount = StringSplit(TradeSymbols, Virgül, Semboller);
for (int i = 0; i < SymbolCount; i++)
{
StringToUpper(Semboller[i]);
Semboller[i] = StringTrimRight(Symbols[i]); // rastgele boşluklara karşı koruma
Symbols[i] = StringTrimLeft(Symbols[i]);
}
if (SymbolCount > 0) return(true);
dönüş(yanlış);
}
//------------------------------------------------ --
geçersiz OnTick()
{
için (int i=0; i<SymbolCount; i++)
{
double LastAsk = SymbolInfoDouble(Semboller[i], SYMBOL_ASK);
double LastBid = SymbolInfoDouble(Semboller[i], SYMBOL_BID);
if (CountTrades() == 0) // Emir sayısı sıfıra eşit olmalıdır
{
if (((TypeLastHistOrder() == OP_BUY && FiyatCloseLastHistOrder(OP_BUY) < FiyatOpenLastHistOrder(OP_BUY)) ||
(TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) && MaxOpenOrders > OrdersTotal())
// Son anlaşma kârsızsa, aynısı açılır, ancak artan lotla
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk;
if (Tür == OP_SELL) Fiyat = LastBid;
Parti = NormalizeDouble(LotsLastHistOrder()*Çarpan, 2);
bilet = OrderSend(Symbols[i], Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0 && MaxOpenOrders > OrdersTotal())
// Son ticaretin karı sıfırsa, aynısını aç
{
Tür = TypeLastHistOrder();
if (Tür == OP_BUY) Fiyat = LastAsk;
if (Tür == OP_SELL) Fiyat = LastBid;
Parti = NormalizeDouble(LotsLastHistOrder(), 2);
bilet = OrderSend(Symbols[i], Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > FiyatOpenLastHistOrder(OP_BUY))
|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL)))
|| CountHistTrades() == 0)// Son işlem karlıysa, sipariş açılır
{
if (SignalBuy(Symbols[i]) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend(Symbols[i], OP_BUY, Lot, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
if (SignalSell(Symbols[i]) && MaxOpenOrders > OrdersTotal())
{
bilet = OrderSend(Symbols[i], OP_SELL, Lot, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic);
}
}
}
}
}
//+------------------------------------------- --------------------+
int CountTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
int CountHistTrades(int tipi = -1)
{
int cnt = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
cnt++;
}
}
dönüş(cnt);
}
//+------------------------------------------- --------------------+
bool SignalBuy(stringSym)
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if (C > O) döner(yanlış);
}
if ((iBarShift(Sym, 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
bool SignalSell(stringSym)
{
for (int i=1; i<=Bekle; i++)
{
double C = iClose(Sym, PERIOD_M5, i); // Burada istenen zaman dilimini belirtin
çift O = iOpen(Sym, PERIOD_M5, i);
if (C < O) döner(yanlış);
}
if ((iBarShift(Sym, 0, TimeLastHistOrder()+Timeout) >= Wait || (Bekle == 0 && TimeCurrent() >= TimeLastHistOrder()+Timeout))
&& CountHistTrades() > 0) return(true);
if (CountHistTrades() == 0) return(true);
dönüş(yanlış);
}
//+------------------------------------------- --------------------+
tarihsaat TimeLastHistOrder(int tipi = -1)
{
tarihsaat sonzaman = 0;
tarihsaat açıksaat=0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > geçen sefer)
{
lasttime = OrderCloseTime();
açılış zamanı = OrderOpenTime();
}
}
}
}
dönüş (açık zaman);
}
//+------------------------------------------- --------------------+
intTypeLastHistOrder()
{
tarihsaat = 0;
int türü = -1;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Sihirli)
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
type = OrderType();
}
}
}
}
dönüş(tür);
}
//+------------------------------------------- --------------------+
double LotsLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift lot = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderOpenTime() > zaman)
{
zaman = OrderOpenTime();
lot = OrderLots();
}
}
}
}
dönüş(lot);
}
//+------------------------------------------- --------------------+
double PriceCloseLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderClosePrice();
}
}
}
}
iade(fiyat);
}
//+------------------------------------------- --------------------+
double PriceOpenLastHistOrder(int tipi = -1)
{
tarihsaat = 0;
çift fiyat = 0;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber() == Magic && (OrderType() == type || type == -1))
{
if (OrderCloseTime() > zaman)
{
zaman = OrderCloseTime();
fiyat = OrderOpenPrice();
}
}
}
}
iade(fiyat);
}
Merhaba!
Bir TP pozisyonunun kapalı olup olmadığını nasıl belirleyebilirim? OrderClosePrice()==OrderTakeProfit() öğesinin kullanmanın doğru yolu olacağını düşünmüyorum.