![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
selam beyler
Burada bir sorum var... Aşağıdakileri nasıl değiştirebilirim;
harici çift MaxLot = 1.50;
double max_lot = GetMaxLot(OP_BUY, OP_SELL);
if (max_lot >= MaxLot) lot = CalcHedgeLot(order_type);
(order_type)]: ", parti);
if (lot == -1) dönüş (lot);
lot = NormalizeDouble(lot, LotPrec);
if (lot > MaxLot) lot = MaxLot;
if (lot < MinLot) lot = MinLot;
dönüş (lot);
}
OP_BUY AND OP_SELL için yukarıdaki kontrol
soru: bunu herhangi bir OP_BUY VEYA herhangi bir OP_SELL olarak nasıl değiştiririm
takdir etmekGetMaxLot() fonksiyon kodunu değiştirmelisiniz ya da GetMaxLot(OP_BUY, OP_BUY); işlevini kullanabilirsiniz; ve GetMaxLot(OP_SELL, OP_SELL); (koda bağlıdır - böyle yapabilir veya yapamazsınız).
Ama denemeye değer sanırım![](https://c.mql5.com/forextsd/smiles/smile.png)
gitti
Aradığın şey bu mu?
-----------
int barlar_count=WindowBarsPerChart();
int bar=WindowFirstVisibleBar();
-----------
gittiTeşekkürler Goen.
GetMaxLot() fonksiyon kodunu değiştirmelisiniz ya da GetMaxLot(OP_BUY, OP_BUY); işlevini kullanabilirsiniz; ve GetMaxLot(OP_SELL, OP_SELL); (koda bağlıdır - böyle yapabilir veya yapamazsınız).
Ama denemeye değer sanırım![](https://c.mql5.com/forextsd/smiles/smile.png)
gitticevapladığınız için teşekkürler..
burada neyi değiştirmem gerekiyor? yardımınıza minnettar olurum
çift GetMaxLot(int type1, int type2)
{
çift max_lot = 0.0;
int cnt = SiparişlerToplam();
için (int i=0; i < cnt; i++)
{
(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) devam ederse;
(OrderSymbol() != Symbol()) devam ederse;
(OrderMagicNumber() != Magic) devam ederse;
(OrderType() != type1 && OrderType() != type2) devam ederse;
if (max_lot == 0 || OrderLots() >= max_lot)
{
max_lot = OrderLots();
}
}
dönüş (max_lot);
}
burada biraz kayıp...
tis göstergesine nasıl uyarı eklenir?
Gerçekten iyi çalışan bir MA geçiş göstergesine sahibim, ancak sesli uyarı desteğine sahip değil, beni çok fazla ticareti kaçırıyor, meta hakkında hiçbir şey bilmediğim için bana bu göstergeye nasıl uyarı ekleneceğini öğretebilir misiniz? kod şey....teşekkürler...
işte göstergenin kendisi ile birlikte göstergenin kodu, teşekkürler...
/*[[
İsim := EMA Çapraz
Yazar := Hapsa
Bağlantı := http://www.metaquotes.net/
Ayrı Pencere := Hayır
Ayrı Pencere := Hayır
İlk Renk := Kırmızı
İlk Çekiliş Türü := Sembol
İlk Sembol := 108
İkinci Veriyi Kullan := Evet
İkinci Renk := KoyuZeytinYeşil
İkinci Çekiliş Tipi := Sembol
İkinci Sembol := 108
]]*/
#özellik telif hakkı "Hapsa"
#özellik bağlantısı ""
harici int SlowPeriod=20;
harici int FastPeriod=5;
#özellik göstergesi_tamponları 3
#özellik göstergesi_chart_window
#özellik göstergesi_renk1 Kırmızı
#özellik göstergesi_color2 Yeşil
çift L20[];
çift L50[];
çift vardiya=0,val1=0,val2=0;
int init()
{
Gösterge Tamponları(3);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(0, 108);
SetIndexArrow(1, 108);
SetIndexBuffer(0,L20);
SetIndexBuffer(1,L50);
//---- göstergeler
//----
dönüş(0);
}
int başlangıç()
{
int counted_bars=IndicatorCounted();
//----
int i = Çubuklar - sayılan_barlar - 1;
(i>=0) iken
{
değer1=0;
val2=0;
double iMaSlowPrevious = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);
double iMaSlowCurrent = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i);
double iMaFastPrevious = iMA(NULL,0,HızlıPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);
double iMaFastCurrent = iMA(NULL,0,FastPeriod,0,MODE_EMA, PRICE_CLOSE, i);
if (iMaFastPreviousiMaSlowCurrent ) val1=Yüksek;
if (iMaFastPrevious>iMaSlowPrevious && iMaFastCurrent<iMaSlowCurrent ) val2=Düşük;
L20=val1+5*Nokta;
L50=val2-5*Nokta;
ben--;
}
//----
dönüş(0);
}
cevapladığınız için teşekkürler..
burada neyi değiştirmem gerekiyor? yardımınıza minnettar olurum
çift GetMaxLot(int type1, int type2)
{
çift max_lot = 0.0;
int cnt = SiparişlerToplam();
için (int i=0; i < cnt; i++)
{
(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) devam ederse;
(OrderSymbol() != Symbol()) devam ederse;
(OrderMagicNumber() != Magic) devam ederse;
(OrderType() != type1 && OrderType() != type2) devam ederse;
if (max_lot == 0 || OrderLots() >= max_lot)
{
max_lot = OrderLots();
}
}
dönüş (max_lot);
}Evet, GetMaxLot(OP_BUY,OP_BUY); kullanabilirsiniz. sadece açık alım satım için maksimum lotu almak ve GetMaxLot(OP_SELL,OP_SELL); sadece açık ticaret satmak için maxlot almak için.
Bu kodu "if (max_lot == 0 || OrderLots() >= max_lot)" ifadesini "if (OrderLots() > max_lot)" ile sadeleştirebilirsiniz.
Coz, max_lot = 0 ise, otomatik olarak açık işlemlerin herhangi bir lotundan daha düşük olacaktır. Ve ">=" işareti aynı değere sahipse ">" ile değiştirin coz, aynı değerle max_lot'u güncellemeye gerek yok, gereksiz çaba. Yalnızca yeni değer max_lot'tan büyükse güncellenir.
Bu kodu değiştirerek, işleminizi daha hızlı hale getirebilir.
gitti
stoploss sorunu
Merhaba,
Tüm bu forex/metatrading konusunda yeniyim ama hepsinin nasıl çalıştığını anlamaya çalışıyorum.
Şimdi bir EA yazmaya çalışıyorum ve korkarım temel bir şeyi kaçırıyorum.
Kodumda değiştirirsem
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",MAGIC,0,Kırmızı);
ile
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",MAGIC,0,Red);
Ve bu yeni sürümü strateji test cihazında test edin, DAHA AZ sipariş alıyorum. Stoploss eklemek , sipariş girişlerinin sayısını nasıl azaltabilir? Stop emri eklemenin emirlerin daha erken çıkmasına ve dolayısıyla yeni emirlerin daha hızlı eklenebilmesine neden olması durumunda sayının artacağını tahmin edebiliyorum ama DAHA AZ emir...?
Herhangi bir fikir?
teşekkürler
Merhaba,
Tüm bu forex/metatrading konusunda yeniyim ama hepsinin nasıl çalıştığını anlamaya çalışıyorum.
Şimdi bir EA yazmaya çalışıyorum ve korkarım temel bir şeyi kaçırıyorum.
Kodumda değiştirirsem
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",ordercount,0,Red);
ile
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",ordercount,0,Red);
Ve bu yeni sürümü strateji test cihazında test edin, DAHA AZ sipariş alıyorum. Stoploss eklemek, sipariş girişlerinin sayısını nasıl azaltabilir? Stop emri eklemenin emirlerin daha erken çıkmasına ve dolayısıyla yeni emirlerin daha hızlı eklenebilmesine neden olması durumunda sayının yükseleceğini tahmin edebiliyorum ama DAHA AZ emir...?
Herhangi bir fikir?
teşekkürler10 pip, komisyoncu tarafından dayatılan stop limitine çok yakın olabilir (brokerlar arasında değişir) - yani, minimum 10 pip ise ve fiyat, emir verilirken bunun içinde 1 pip sallanırsa, emir reddedilecektir.. .
Omlet, haklısın stoploss arttırarak düzeldi, teşekkürler! :-)
#property indicator_color2 Yellow
extern bool TrendDirectionUp=true;
string Color1;
string Color2;
int init() {
if(TrendDirectionUp==true)//Conditionj 1
{
Color1=Yellow;
Color2=CLR_NONE;
}
if(TrendDirectionUp==false)//Condition2
{
Color1=CLR_NONE;
Color2=Magenta;
}
SetIndexStyle(0,DRAW_ARROW,0,star_size,Color1);
SetIndexStyle(1,DRAW_ARROW,0,star_size,Color2);
SetIndexArrow(0,172);//333
SetIndexArrow(1,172);//334
SetIndexBuffer(0,b1);
SetIndexBuffer(1,b2);
return(0);
}Şu anda, hem Renk(ler) 1 hem de 2 grafikte 'siyah' gösteriyor!!
Herhangi bir uzman Guru bu sorunu çözmeme yardım edebilir mi???
Şimdiden teşekkürler!