1) Ve harici değişkenler aracılığıyla nasıl devre dışı bırakılır?
2) İlk açık emrin OrderClose ile kapatılacağı ve sonraki 2, 3, vb. emirlerin kapatılmayacağı şekilde orada ayarlanabilir mi? Diyelim ki bir Alış emri açtım - bu ilk emir, sonra başka bir alış emri açtım - ikinci emir, vb. ve bu emir dizisinden sadece 1. emir OrderClose tarafından kapatılacak mı?
1.mq4 (ekli) EA'nın görsel testi sırasında, 3-cci-h3 göstergesini (ekli) çizelgeye sürükleyin, o zaman, göründüğü gibi, hesaplanan cci'nin kesinlikle aynı parametreleriyle, gösterge sinyalleri ve gerçek cci (sağ üst köşedeki nesne metni) eşleşmiyor.
NİYE YA?
Ve nedense bu türkiyede uyarılar çalışmıyor.
Danışman kodu:
double lasthigh , lastlow , lasthigh2 =200000, lastlow2 =0, lastpos =0, t [2];int start (){Comment("");
lasthigh =High[1]; lastlow =Low[1];if( lasthigh < lasthigh2 ) lasthigh2 = lasthigh ;if( lastlow > lastlow2 ) lastlow2 = lastlow ;
t [0]= lasthigh2 ;
t [1]= lastlow2 ;string s1 ="lasthigh2 *** "+DoubleToStr( t [0],5);string s2 ="lastlow2 *** "+DoubleToStr( t [1],5);string str [2];
str [0]= s1 ;
str [1]= s2 ;color col =Lime;for(int y =0; y <2; y ++){ObjectCreate("textSignal"+ y ,OBJ_LABEL,0,0,0,0,0);ObjectSet("textSignal"+ y , OBJPROP_CORNER ,1);ObjectSet("textSignal"+ y , OBJPROP_XDISTANCE ,35-25);ObjectSet("textSignal"+ y , OBJPROP_YDISTANCE , y *(20)+20+8);ObjectSetText("textSignal"+ y , str [ y ],15,"Tahoma", col );}if( lastpos ==0){if( lastlow2 > lasthigh ){Comment("PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!!","PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! PRODAGA!!! "); lasthigh2 =2000000; lastlow2 =0; lastpos =1;}}else{if( lasthigh2 < lastlow ){Comment("POKUPKA!!! POKUPKA!!! POKUPKA!!! POKUPKA!!! POKUPKA!!! POKUPKA!!! POKUPKA!!!"," POKUPKA!!! POKUPKA!!! POKEPKA!!! POKEPKA!!! POKEPKA!!!"); lasthigh2 =2000000; lastlow2 =0; lastpos =0;}}}
Gösterge kodu:
//+------------------------------------------------------------------+//| i-3CCI-h.mq4 |//| johnfantom & KimIV |//| http://www.kimiv.ru |//| |//| 02.01.2006 CCI с 3-х ТФ в одном флаконе. |//+------------------------------------------------------------------+#property copyright "johnfantom & KimIV"#property link "http://www.kimiv.ru"#property indicator_separate_window#property indicator_buffers 1#property indicator_color1 DodgerBlue#property indicator_maximum 1.4#property indicator_level1 0#property indicator_minimum - 1.2//------- Внешние параметры индикатора -------------------------------externint CCI_Period_0 =14;// Период CCI для текущего ТФexternint Level_0 =100;// Уровень CCI для текущего ТФexternint TF_1 =60;// Количество минут первого ТФexternint CCI_Period_1 =14;// Период CCI для первого ТФexternint Level_1 =100;// Уровень CCI для первого ТФexternint TF_2 =240;// Количество минут второго ТФexternint CCI_Period_2 =14;// Период CCI для второго ТФexternint Level_2 =100;// Уровень CCI для второго ТФexternint NumberOfBars =1000;// Количество баров обсчёта (0-все)externint ExtBars =3;int per ;//------- Буферы индикатора ------------------------------------------double buf0 [];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+void init (){IndicatorDigits(1);SetIndexBuffer(0, buf0 );SetIndexLabel(0,"i-3CCI-h");SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);SetIndexEmptyValue(0,0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+void deinit (){Comment("");}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+void start (){double cci0 , cci1 , cci2 ;int nb1 , nb2 , count ;int LoopBegin , sh ;if( NumberOfBars ==0) LoopBegin =Bars-1;else LoopBegin = NumberOfBars -1;
LoopBegin =MathMin(Bars-1, LoopBegin );
count =IndicatorCounted();for( sh = count ; sh >=0; sh --){
nb1 =iBarShift(NULL, TF_1 ,Time[ sh +1], False );
nb2 =iBarShift(NULL, TF_2 ,Time[ sh +1], False );
cci0 =iCCI(NULL,0, CCI_Period_0 ,PRICE_CLOSE, sh +1);
cci1 =iCCI(NULL, TF_1 , CCI_Period_1 ,PRICE_CLOSE, nb1 );
cci2 =iCCI(NULL, TF_2 , CCI_Period_2 ,PRICE_CLOSE, nb2 );/* double cci[3];
cci[0]=cci0;
cci[1]=cci1;
cci[2]=cci2;
string s1="cci-0 *** "+DoubleToStr(cci[0],3);
string s2="cci-1 *** "+DoubleToStr(cci[1],3);
string s3="cci-2 *** "+DoubleToStr(cci[2],3);
string str[3];
str[0]=s1;
str[1]=s2;
str[2]=s3;
color col=Lime;
for(int y=0;y<3;y++)
{ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
ObjectSet("textSignal"+y,OBJPROP_CORNER,1);
ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,35-25);
ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(20)+20+8);
if(cci[y]>=0)col=Lime;else col=Red;
if(cci[y]>Level_0) col=Aqua;
if(cci[y]<-Level_0) col=DarkViolet;
ObjectSetText("textSignal"+y,str[y],15,"Tahoma",col);
}
*/if( cci0 > Level_0 && cci1 > Level_1 && cci2 > Level_2 ){ buf0 [ sh ]=1;if( per !=Time[0]){ per =Time[0];if( sh <= ExtBars && ExtBars !=-1)Alert(Symbol(),Period()," ",TimeYear(Time[ sh ]),".",TimeDay(Time[ sh ]),".",TimeMonth(Time[ sh ]),"; ",TimeHour(Time[ sh ]),":",TimeMinute(Time[ sh ])," ","Покупка");}}if( cci0 <- Level_0 && cci1 <- Level_1 && cci2 <- Level_2 ){ buf0 [ sh ]=-1;if( per !=Time[0]){ per =Time[0];if( sh <= ExtBars && ExtBars !=-1)Alert(Symbol(),Period()," ",TimeYear(Time[ sh ]),".",TimeDay(Time[ sh ]),".",TimeMonth(Time[ sh ]),"; ",TimeHour(Time[ sh ]),":",TimeMinute(Time[ sh ])," ","Продажа");}}}}//+------------------------------------------------------------------+
Ve açık bir pozisyondan bekleyen bir emir nasıl verilir?
İlk olarak, son açık pozisyonun açılış fiyatını programlı olarak belirlemeniz gerekir.
Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -
PriceOpenLastPos() işlevi. Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir: sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir. op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir. mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir. 'KimIV'ten Faydalı Özellikler'
//-------
Kodun en sonuna işlevin kendisini ekleyin.
Ve BAŞLAT işlevinde, onu arayın ve ihtiyacınız olan son pozisyonun açılış fiyatını ayarlayın (alış veya satış), örneğin, -
İlk olarak, son açık pozisyonun fiyatını programlı olarak belirlemeniz gerekir.
Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -
PriceOpenLastPos() işlevi. Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir: sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir. op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir. mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir.
Göstergede, bir koşul karşılanırsa, bir metin dosyasına işaretli bir satır koymak istiyorum (ne olursa olsun, tarih ve saat diyelim).
Dosya oluşturulur, satır eklenir, ancak yalnızca gerçek zamanlı olarak. Tarih üzerinde çalışırken notlar almak istiyorum. Bunun nasıl yapılacağını bilen var mı?
1) Ve harici değişkenler aracılığıyla nasıl devre dışı bırakılır?
2) İlk açık emrin OrderClose ile kapatılacağı ve sonraki 2, 3, vb. emirlerin kapatılmayacağı şekilde orada ayarlanabilir mi? Diyelim ki bir Alış emri açtım - bu ilk emir, sonra başka bir alış emri açtım - ikinci emir, vb. ve bu emir dizisinden sadece 1. emir OrderClose tarafından kapatılacak mı?
https://www.mql5.com/en/forum/105913 adresinin sayfalarında gezinin
1) Yaklaşık olarak, yani -
2)
önce kilidi ( // ) kaldırın
// dönüş(0); // çıkış
ve sonra sadece ilk (veya son) pozisyonlar kapatılacaktır.
Herkese merhaba )))
Yardım.
mql4 programlamaya yeni başladı.
Uzman yazıyorum.. böyle bir soru vardı
nasıl yapılır.
EA'mın yalnızca Pazartesi günleri çalışmasını istiyorum.
Teşekkür ederim!!
Teşekkür ederim Vin =)
'Kapanış pozisyonları' adresinin sayfalarına bakın. Gösterge sinyaliyle.'
1) Yaklaşık olarak, yani -
2)
önce kilidi ( // ) kaldırın
// dönüş(0); // çıkış
ve sonra sadece ilk pozisyonlar kapatılacaktır.
Teşekkürler kurtulun !
Bana çok yardımcı oldun, hala kibar insanlar var)
Her şeyi anladım mat kısmını okuyacağım umarım fazla vaktinizi almamışımdır)
Lütfen yardım et.
1.mq4 (ekli) EA'nın görsel testi sırasında, 3-cci-h3 göstergesini (ekli) çizelgeye sürükleyin, o zaman, göründüğü gibi, hesaplanan cci'nin kesinlikle aynı parametreleriyle, gösterge sinyalleri ve gerçek cci (sağ üst köşedeki nesne metni) eşleşmiyor.
NİYE YA?
Ve nedense bu türkiyede uyarılar çalışmıyor.
Danışman kodu:
Gösterge kodu:
bystop için şöyle:
Ve açık bir pozisyondan bekleyen bir emir nasıl verilir?
Ve açık bir pozisyondan bekleyen bir emir nasıl verilir?
İlk olarak, son açık pozisyonun açılış fiyatını programlı olarak belirlemeniz gerekir.
Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -
PriceOpenLastPos() işlevi.
Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir.
'KimIV'ten Faydalı Özellikler'
//-------
Kodun en sonuna işlevin kendisini ekleyin.
Ve BAŞLAT işlevinde, onu arayın ve ihtiyacınız olan son pozisyonun açılış fiyatını ayarlayın (alış veya satış), örneğin, -
double OpenPrice=FiyatOpenLastPos(NULL,OP_BUY, MAGIC) ;
İlk olarak, son açık pozisyonun fiyatını programlı olarak belirlemeniz gerekir.
Bunu yapmak için acc kullanabilirsiniz. önceden hazırlanmış fonksiyon, -
PriceOpenLastPos() işlevi.
Bu fonksiyon, son açık pozisyonun açılış fiyatını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY, OP_SELL veya -1. Varsayılan değer -1, herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1, herhangi bir tanımlayıcı anlamına gelir.
'KimIV'ten Faydalı Özellikler'
//-------
Kodun en sonuna işlevin kendisini ekleyin.
Ve BAŞLAT işlevinde, onu arayın ve istenen son pozisyonun (alış veya satış) açılış fiyatını ayarlayın, örneğin, -
double OpenPrice=FiyatOpenLastPos(NULL,OP_BUY, MAGIC) ;
Çok teşekkürler!))
Göstergede, bir koşul karşılanırsa, bir metin dosyasına işaretli bir satır koymak istiyorum (ne olursa olsun, tarih ve saat diyelim).
Dosya oluşturulur, satır eklenir, ancak yalnızca gerçek zamanlı olarak. Tarih üzerinde çalışırken notlar almak istiyorum. Bunun nasıl yapılacağını bilen var mı?
Teşekkür ederim!