Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 816
![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
kakraz "alıntıların arşivi" ile deneyler yaptı. her grafiğin geçmişini ayrı ayrı güncelleyerek, birkaç egzotik çift dışında hemen hemen tüm grafikler için her şeyin doğru çalışmaya başladığını, birkaç kez silip güncellediğimi başardım - grafik için yeni veri yok. genel olarak sorun çözüldü diyebiliriz
Verimlilik için teşekkürler))))
Sevgili programcılar...bir sorun vardı... bir EA oluşturdu ...işlemleri normal olarak açar (test cihazında)....ama yalnızca alım işlemlerini kapatır...yalnızca test onaylandıktan sonra satış işlemlerini kapatır. ..işte bir parça kodu... bana yardım edebilir misin...
//---------------------------------------------------------------------------------------------------------
void CloseSell()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Green);
}
}
}
}
//+------------------------------------------------------------------+
void CloseBuy()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green);
}
}
}
}
//+------------------------------------------------------------------+
void OpenSellOrder()
{
mlots = GetLots();
if (AutoSL) sl = CalcSL(OP_SELL);
else sl = ND(Bid - StopLoss*Point);
tp = ND(Bid - TakeProfit*Point);
ticket = OrderSendReliable(Symbol(), OP_SELL, mlots, Bid, Slippage, 0, 0, comment, Magic, 0, Red);
if(ticket > 0)
OrderModifyReliable(OrderTicket(), OrderOpenPrice(), sl, tp, 0);
}
//+------------------------------------------------------------------+
int OpenBuyOrder()
{
mlots = GetLots();
if (AutoSL) sl = CalcSL(OP_BUY);
else sl = ND(Bid - StopLoss*Point);
tp = ND(Ask + TakeProfit*Point);
ticket = OrderSendReliable(Symbol(), OP_BUY, mlots, Ask, Slippage, 0, 0, comment, Magic, 0, Blue);
if(ticket > 0)
OrderModifyReliable(OrderTicket(), OrderOpenPrice(), sl, tp, 0);
}
//+------------------------------------------------------------------+
void ModifyLoss()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderType() == OP_BUY)
{
sl = ND(OrderOpenPrice() + LossPoints*Point);
if (OrderStopLoss() < sl && (Ask - OrderOpenPrice())/Point >= LossLimit)
{
if (sl != ND(OrderStopLoss()))
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
else
if (OrderType() == OP_SELL)
{
sl = ND(OrderOpenPrice() - LossPoints*Point);
if (OrderStopLoss() > sl && (OrderOpenPrice()-Bid)/Point >= LossLimit)
{
if (sl != ND(OrderStopLoss()))
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
}
}
}
//+------------------------------------------------------------------+
double CalcSL(int otype)
{
double sloss = 10000000;
if (otype == OP_BUY)
{
double min;
for (int i=1; i<=SLBars; i++)
{
min = iLow(NULL, 0, i);
if (min < sloss)
sloss = min;
}
sloss = ND(sloss - SLPips*Point);
if ((Ask-sloss)/Point < MinSL)
sloss = ND(Ask - MinSL*Point);
if ((Ask - sloss)/Point > MaxSL)
sloss = ND(Ask - MaxSL*Point);
else
sloss = ND(sloss - SLPips*Point);
return(sloss);
}
else
if (otype == OP_SELL)
{
double max;
sloss = 0;
for (i=1; i<=SLBars; i++)
{
max = iHigh(NULL, 0, i);
if (max > sloss)
sloss = max;
}
if ((sloss - Bid)/Point < MinSL)
sloss = ND(Bid + MinSL*Point);
if ((sloss - Bid)/Point > MaxSL)
sloss = ND(Bid + MaxSL*Point);
else
sloss = ND(sloss + SLPips*Point);
return(sloss);
}
return(0);
}
//+------------------------------------------------------------------+
double GetLots()
{
if (!UseMM) return(FixLot);
double clots;
clots = AccountBalance() / 10000.0 * LotsFor10000;
clots = MathMax(clots, MarketInfo(Symbol(), MODE_MINLOT));
clots = MathMin(clots, MarketInfo(Symbol(), MODE_MAXLOT));
clots = NormalizeDouble(clots, 2);
return (clots);
}
//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
count++;
}
}
return (count);
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
count++;
}
}
return (count);
}
//+------------------------------------------------------------------+
int CountTrades()
{
return(CountBuy() + CountSell());
}
//+------------------------------------------------------------------+
double ND(double value)
{
return (NormalizeDouble(value, Digits));
Önceden Order OrderSelect'i seçtikten sonra (birinci siparişin Bilet_si, SELECT_BY_TICKET);
if(OrderOpenPrice()+10*Puan==Sor)
OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);
İŞ ŞUBEMDE ... pardon
Herkese iyi geceler!!! Yeni Yılın Kutlu Olsun!
Tampon verilerini bir dosya aracılığıyla kaydetmeye karar verdim. Bir dosya oluşturmak ve ona yazmak için özel bir sorun yoktur, ancak ondan okumak zordur.
İşte bir test programı. Yardım lütfen. Sorun, dosyaya fazladan yazma işlemi olması veya dosyadan okunmamasıdır. Ben sadece listeyi bir dosyadan örneğin dizilere okumak istiyorum ... Yazmak için çok tembelsem, benzer materyallere bir bağlantı istiyorum, ancak sadece bir ders kitabı buldum ... AMA HAZIR SEÇENEK SİTEDE DAHA İYİ))):
HERHANGİ BİR DURUMDA ŞİMDİDEN TEŞEKKÜRLER!!!))):
Ne yazık ki, bir dosyada bir RECORD ile her şey o kadar basit değil !!! (((
Ama görünüşe göre ... tam tersi.
Eğitim örnekleri sayesinde okumayı anladım ama bir dosyaya YAZMAK daha karmaşık kodlar gerektiriyor. Daha kısaca zaten kandırıldım... Ve bir dosyadan Okuma ile koordineli olarak kaydı nasıl taşıyacağımı düşünmem.
Gün çubukları ve geçmiş için sabit ayar seviyeleri (ilk tampon verileri).
SORU AYNI. LÜTFEN ÇOK YAZILIYORSA, TAMPON VERİLERİNİN BİR DOSYAYA YAZILMASININ NASIL DAHA İYİ OLDUĞUNU ANLATIN.
DÜZELTİLMİŞ PROGRAM KODU
DOSYA İŞLEMLERİ HAKKINDA SORULARIMA CEVAPLAR İÇİN NEREDE Arayacağınızı Buldu...))):
DOSYADAN grafiğe BİLGİ GÖRÜNTÜLEMEK İÇİN Scriptler.
ÜCRETSİZ MT4 KODLARININ GEÇMİŞİ VERİLERİ BİR DOSYAYA AKTARMA SEÇENEKLERİ VE TERSİNE İŞLEM MEVCUTTUR.
HEPİNİZE TEŞEKKÜRLER, TÜM CHAO))):
Tarihlerin "20141231" biçiminde olduğu büyük bir dosya var. Bir dizeyi tarih saat biçimine dönüştürmek için yıl, ay ve tarih arasında "YYYY.AA.GG" noktalarına ihtiyacınız vardır.
Bu nasıl yapılabilir?
Herkese merhaba, danışmanın 100 bar için en yüksek veya en düşük en düşük değerini bulmasını istiyorum, bana nerede, ne okuyacağımı söyle?
Yardımı okuyabilirsiniz, her şey orada, örneklerle.