
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
Şimdilik, aynen şöyle:
//+------------------------------------------- --------------------+
//| Fibo.mq4 ticareti |
//| Minodi |
//| minodi@yandex.ru |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Minodi"
#özellik bağlantısı "minodi@yandex.ru"
harici int period_EMA = 233,
period_SMA = 233,
kaybı durdur = 30,
harici çift Parti = 0.01;
dış dize SesEnd ="22:00"; // yüksek veya düşük için sınır zamanı
//+------------------------------------------- --------------------+
//| komut dosyası programı başlatma işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
//-------Günlük fiyatlar, Fib ve Hi-Lo çekme süresi--------------+
int kaydırma = iBarShift(NULL,1440,Zaman[0]) + 1;
çift yüksek fiyat = iYüksek(NULL,1440,shift); // yüksek fiyat
çift LoPrice =iLow(NULL,1440,shift); // Düşük fiyat
çift OpPrice =iOpen(NULL,1440,shift); // açık fiyat
çift ClFiyat = iClose(NULL,1440,shift); // fiyatı kapat
tarihsaat StTime = iTime(NULL,1440,shift); // ??
if(TimeDayOfWeek(StTime)==0/*Pazar*/)
{//Cuma günlerini en yüksek ve en düşük olarak ekleyin
HiPrice = MathMax(HiPrice,iHigh(NULL,1440,shift+1));
LoPrice = MathMin(LoPrice,iLow(NULL,1440,shift+1));
OpPrice = iOpen(NULL,1440,shift+1);
ClPrice = iClose(NULL,1440,shift+1);
}
double Pivot =(HiPrice+LoPrice+ClPrice)/3;
double Range=HiPrice-LoPrice;
çift Fibo138 =1.382*Aralık+LoFiyat;
çift Fibo162 =1.618*Aralık+LoFiyat;
double Fibo_138 =LoFiyat-(1.382*Aralık-Aralık);
double Fibo_162 =LoFiyat-(1.618*Aralık-Aralık);
//----------------yüksek ve düşük zaman---------------------- ------ -------+
int HiTime,LoTime;
int zaman; // sonraki çubukta değerleri devre dışı bırak
if (zaman!=Zaman[0]){HiTime=0;LoTime=0;time=Zaman[0];}
if (Yüksek[0]>HiPrice)HiTime=TimeCurrent();
if (Low[0]<LoPrice)LoTime=TimeCurrent();
Comment("Bu çubukta:"+"\n Yüksek Zaman Noktası="+HiTime+"\n Düşük Zaman Noktası="+LoTime);
//-----------------Demark fiyat aralığı---------------------- ---+
int currDay, i=0; //
if (currDay!=ZamanGünü(Zaman[i]))
{
if (ClPrice<OpPrice) double x=(HiPrice + LoPrice + ClPrice + LoPrice)/2;
if (ClPrice>OpPrice) x=(HiPrice + LoPrice + ClPrice + HiPrice)/2;
if (ClPrice==OpPrice) x=(HiPrice + LoPrice + ClPrice + ClPrice)/2;
ben++;
}
çift MaxDay = x - LoPrice; // Demark fiyat aralığı
çift MinDay = x - HiPrice; // Demark fiyat aralığı
// -----------Hareketli ortalamalar----------------------------------- ----------+
çift EMA = iMA(15,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
çift SMA = iMA(15,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
double EMA1 = iMA(60,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
double SMA1 = iMA(60,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
//----------------Dün siparişlerin silinmesi-------------------------- ----+
//------------------Siparişler-------------------------- ------ -----------------+
Sevgili forum kullanıcıları, kodu kontrol edin, yavaş yavaş eklemeyi planlıyorum
Başlamadan önce verdiğim parametreler bunlar
int HiTime,LoTime;
int time; // на следующем баре обнкляем значения
Başlamadan önce verdiğim parametreler bunlar
int HiTime,LoTime;
int time; // на следующем баре обнкляем значения
Değerli forum kullanıcıları, dikkatinizi verin ve yapılan hataları anlatın:
//+------------------------------------------- --------------------+
//| Fibo.mq4 ticareti |
//| Minodi |
//| minodi@yandex.ru |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Minodi"
#özellik bağlantısı "minodi@yandex.ru"
harici int period_EMA = 233,
period_SMA = 233,
kaybı durdur = 30,
Büyü = 55;
harici çift Parti = 0.01;
dış dize SesEnd ="22:00"; // yüksek veya düşük için sınır zamanı
int HiTime,LoTime;
int zaman; // sonraki çubukta değerleri devre dışı bırak
//+------------------------------------------- --------------------+
//| komut dosyası programı başlatma işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
//-------Günlük fiyatlar, Fib ve Hi-Lo çekme süresi--------------+
int kaydırma = iBarShift(NULL,1440,Zaman[0]) + 1;
çift yüksek fiyat = iYüksek(NULL,1440,shift); // yüksek fiyat
çift LoPrice =iLow(NULL,1440,shift); // Düşük fiyat
çift OpPrice =iOpen(NULL,1440,shift); // açık fiyat
çift ClFiyat = iClose(NULL,1440,shift); // fiyatı kapat
tarihsaat StTime = iTime(NULL,1440,shift); // ??
if(TimeDayOfWeek(StTime)==0/*Pazar*/)
{//Cuma günlerini en yüksek ve en düşük olarak ekleyin
HiPrice = MathMax(HiPrice,iHigh(NULL,1440,shift+1));
LoPrice = MathMin(LoPrice,iLow(NULL,1440,shift+1));
OpPrice = iOpen(NULL,1440,shift+1);
ClPrice = iClose(NULL,1440,shift+1);
}
double Pivot =(HiPrice+LoPrice+ClPrice)/3;
double Range=HiPrice-LoPrice;
çift Fibo138 =1.382*Aralık;
çift Fibo162 =1.618*Aralık;
double Fibo_138 =(LoPrice-1.382*Aralık)-Aralık;
double Fibo_162 =(LoPrice-1.618*Aralık)-Aralık;
//----------------yüksek ve düşük zaman---------------------- ------ -------+
if (zaman!=Zaman[0]){HiTime=0;LoTime=0;time=Zaman[0];}
if (Yüksek[0]>HiPrice)HiTime=TimeCurrent();
if (Low[0]<LoPrice)LoTime=TimeCurrent();
Comment("Bu çubukta:"+"\n Yüksek Zaman Noktası="+HiTime+"\n Düşük Zaman Noktası="+LoTime);
//-----------------Demark fiyat aralığı---------------------- ---+
int currDay, i=0; //
if (currDay!=ZamanGünü(Zaman[i]))
{
if (ClPrice<OpPrice) double x=(HiPrice + LoPrice + ClPrice + LoPrice)/2;
if (ClPrice>OpPrice) x=(HiPrice + LoPrice + ClPrice + HiPrice)/2;
if (ClPrice==OpPrice) x=(HiPrice + LoPrice + ClPrice + ClPrice)/2;
ben++;
}
çift MaxDay = x - LoPrice; // Demark fiyat aralığı
çift MinDay = x - HiPrice; // Demark fiyat aralığı
// -----------Hareketli ortalamalar----------------------------------- ----------+
çift EMA = iMA(15,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
çift SMA = iMA(15,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
double EMA1 = iMA(60,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
double SMA1 = iMA(60,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
//------------------Siparişler-------------------------- ------ -----------------+
if (HiTime>LoTime){
int bilet1 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,HiPrice,0,0,Pivot,NULL,Magic,58000,Red);
int bilet2 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,HiPrice,0,0,LoPrice,NULL,Magic,58000,Red);
int bilet3 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo138,0,0,HiPrice,NULL,Magic,58000,Red);
int bilet4 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo138,0,0,LoPrice,NULL,Magic,58000,Red);
int bilet5 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo162,0,0,HiPrice,NULL,Magic,58000,Red);
int bilet6 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo162,0,0,Pivot,NULL,Magic,58000,Red);
}
if (HiTime<LoTime){
int bilet7=OrderSend(Symbol(),OP_BUYLIMIT,Lot,LoPrice,0,0,Pivot,NULL,Magic,58000,Red);
int bilet8=OrderSend(Symbol(),OP_BUYLIMIT,Lot,LoPrice,0,0,HiPrice,NULL,Magic,58000,Red);
int bilet9=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_138,0,0,LoPrice,NULL,Magic,58000,Red);
int bilet10=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_138,0,0,Pivot,NULL,Magic,58000,Red);
int bilet11=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_162,0,0,LoPrice,NULL,Magic,58000,Red);
int bilet12=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_162,0,0,Pivot,NULL,Magic,58000,Red);
}
if (HiTime>LoTime && ClPrice>Pivot) {
int bilet13=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Pivot,0,0,HiPrice,NULL,Magic,58000,Red);
int bilet14=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Pivot,0,0,Fibo138,NULL,Magic,58000,Red);
}
if (HiTime<LoTime && ClPrice<Pivot)
int bilet15=OrderSend(Symbol(),OP_SELLLIMIT,Lot,Pivot,0,0,LoPrice,NULL,Magic,58000,Red);
int bilet16=OrderSend(Symbol(),OP_SELLLIMIT,Lot,Pivot,0,0,Fibo_138,NULL,Magic,58000,Red);
}
dönüş(0);
//+------------------------------------------- --------------------+
ilk bakışta parametreleri çıkardım:
int currDay;
başlangıç için
Forumun beyleri, çözmeme yardım edin ....
İşte kodun bir kısmı (düzenli bir Uzman Danışman oluşturmaya ilişkin eğitimdeki ana damat kodu)
// Sipariş muhasebesi fonksiyonu
// Genel değişkenler:
// Mas_Ord_New[31][9] // Bilinen son sipariş dizisi
// Mas_Ord_Old[31][9] // Önceki (eski) siparişler dizisi
// 1. dizin = sipariş seri numarası
// [][0] tanımlı değil
// [][1] açık oran siparişler (mutlak döviz kuru)
// [][2] Emrin StopLoss'u (oranın mutlak değeri)
// [][3] TakeProfit emirleri (oranın mutlak değeri)
// [][4] sipariş numarası
// [][5] say. çok ord. (mutlak döviz kuru)
// [][6] sipariş türü. 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] sihirli numarayı sipariş et
// [][8] 0/1 bir yorum olduğu gerçeği
if (Mas_Ord_Old[old][6]==0 && Bid>Mas_Ord_Old[old][2] && Bid<Mas_Ord_Old[old][3])
Inform(1, Mas_Ord_Old[eski][4]); // Satın alma emri bir karşı sinyal ile kapatılır.
else if (Mas_Ord_Old[old][6]==0 && Bid<=Mas_Ord_Old[old][2])
Inform(19,Mas_Ord_Old[eski][4],Mas_Ord_Old[eski][2]); // SL'nin çalıştığı anlamına gelir
else if (Mas_Ord_Old[old][6]==0 && Bid>=Mas_Ord_Old[old][3])
Inform(20,Mas_Ord_Old[eski][4],Mas_Ord_Old[eski][3]); // TP çalıştı
else if (Mas_Ord_Old[old][6]==1 && Ask<Mas_Ord_Old[old][2] && Ask>Mas_Ord_Old[old][3])
Inform(2, Mas_Ord_Old[eski][4]); // Yani Satış emri ters bir sinyalle kapatılır
else if (Mas_Ord_Old[old][6]==1 && Ask>=Mas_Ord_Old[old][2])
Inform(19,Mas_Ord_Old[eski][4],Mas_Ord_Old[eski][2]); // SL'nin çalıştığı anlamına gelir
else if (Mas_Ord_Old[old][6]==1 && Ask<=Mas_Ord_Old[old][3])
Inform(20,Mas_Ord_Old[eski][4],Mas_Ord_Old[eski][3]); // TP çalıştı
Gerisi kimseyi ilgilendirmez...
Sorun: Vakaların %90'ında doğru parametre görüntüleniyor mu? yani SL çalıştıysa, "19" parametresi çıkışta, TP - "20" ise, sipariş manuel olarak veya ters bir sinyalle kapatılırsa, "1" veya "2". Böyle amaçlanıyordu...
Ve bazen (oldukça sık), "20" yerine "19" (veya tam tersi) ve hatta "1" ("2") verir. Lütfen "eğer" işlevini doğru bir şekilde tanımlamaya yardımcı olun: siparişleri kapatma nedenlerini tetikleme koşulları olarak.
Sanırım nedeni fiyatların yuvarlanması olabilir mi?