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
Merhaba Pro-Coders,
Acaba birisi yardım edebilir mi?
EA'mın bir Alış İşlemi açmasını ve trend değişikliğinde mevcut bir Satış İşlemini kapatmasını istiyorum.
Bunu yapar, ancak yalnızca kâr elde ettiğinde. Pozisyon sabitken trend değiştiğinde
açık, StopLoss'ta çalışır. (Resmi görmek). Bazen çalışıyor ve bazen çalışmıyor.
Neyi iyileştirebilirim?
if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 55 )
{
OpenBuy_ = true ;
CloseSell_= true ;
}
else
if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 45 )
{
OpenSell_= true ;
CloseBuy_= true ;
}
Bu kod kısmı hiçbir şeyi sonuçlandırmak için yeterli değil
Merhaba Mladen,
sorunuma baktığınız için çok teşekkür ederim.
Mevcut Sat ve Al emirlerini kapatacak kodu aşağıda bulabilirsiniz.
Ayrıca, trend doğru yöne işaret ediyorsa yeni bir Al veya Sat emri açmalıdır...
//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)
//| Iterate through open tickets
//+------------------------------------------------------------------+
for ( int i= 0 ; i<Total; i++)
{
dummyResult= OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
if ( OrderType ()<= OP_SELL && OrderSymbol ()== Symbol ())
{
if ( OrderType ()== OP_BUY && OrderMagicNumber ()==MagicNumber)
{
for ( int z= OrdersTotal ()- 1 ; z>= 0 ; z--)
{
if ( OrderSelect (z, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
{
if ( OrderType ()== OP_BUY )
buy_ticket= OrderTicket ();
else
if ( OrderType ()== OP_SELL )
sell_ticket= OrderTicket ();
}
// Close BUY
if (CloseBuy_== true && buy_ticket!= 0 )
{
dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
if (EachTickMode) TickCheck = True ;
if (!EachTickMode) BarCount = Bars ;
Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
// Open new Sell Order
if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 45 ) OpenSell_= true ;
}
// Close SELL
if (CloseSell_== true && sell_ticket!= 0 )
{
dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
if (EachTickMode) TickCheck = True ;
if (!EachTickMode) BarCount = Bars ;
Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
// Open new Buy Order
if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 55 ) OpenBuy_ = true ;
}}
Merhaba Mladen,
sorunuma baktığınız için çok teşekkür ederim.
Mevcut Sat ve Al emirlerini kapatacak kodu aşağıda bulabilirsiniz.
Ayrıca, trend doğru yöne işaret ediyorsa yeni bir Al veya Sat emri açmalıdır...
//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)
//| Iterate through open tickets
//+------------------------------------------------------------------+
for ( int i= 0 ; i<Total; i++)
{
dummyResult= OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
if ( OrderType ()<= OP_SELL && OrderSymbol ()== Symbol ())
{
if ( OrderType ()== OP_BUY && OrderMagicNumber ()==MagicNumber)
{
for ( int z= OrdersTotal ()- 1 ; z>= 0 ; z--)
{
if ( OrderSelect (z, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
{
if ( OrderType ()== OP_BUY )
buy_ticket= OrderTicket ();
else
if ( OrderType ()== OP_SELL )
sell_ticket= OrderTicket ();
}
// Close BUY
if (CloseBuy_== true && buy_ticket!= 0 )
{
dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
if (EachTickMode) TickCheck = True ;
if (!EachTickMode) BarCount = Bars ;
Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
// Open new Sell Order
if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 45 ) OpenSell_= true ;
}
// Close SELL
if (CloseSell_== true && sell_ticket!= 0 )
{
dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
if (EachTickMode) TickCheck = True ;
if (!EachTickMode) BarCount = Bars ;
Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());
// Open new Buy Order
if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 55 ) OpenBuy_ = true ;
}}
Neden döngü içinde bir döngü kullanıyorsunuz? Buna hiç gerek yok. Ondan kurtulun ve kod basitleştirildiğinde, temizlenmesi de daha kolay olacaktır.
Merhaba Mladen,
Kodu buna göre değiştirdim, şimdi daha iyi olduğunu mu düşünüyorsun?
Lütfen bir bakar mısınız? Bu kod hala sözde durumda, henüz test edilmedi.
Şimdiden teşekkür ederim!
//+-------------------------------------------------------------------------+
int PositionIndex;//| Signal close Buy / close Sell / Open new BUY or SELL order when possible
int TotalNumberOfOrders;
TotalNumberOfOrders = OrdersTotal (); // store number of Orders in the variable
for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --) // for loop to loop through all Orders . . COUNT DOWN TO ZERO !
{
if (! OrderSelect (PositionIndex, SELECT_BY_POS , MODE_TRADES )) continue ; // if the OrderSelect fails advance the loop to the next PositionIndex
if ( OrderMagicNumber () == MagicNumber // does the Order's Magic Number match our EA's magic number ?
&& OrderSymbol () == Symbol () // does the Order's Symbol match the Symbol our EA is working on ?
&& ( OrderType () == OP_BUY // is the Order a Buy Order ?
|| OrderType () == OP_SELL )) // or is it a Sell Order ?
if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), Slippage*PipMultiplier,DarkOrange )) //try to close the order
Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError ()); //if the Order Close failed print some helpful information
if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 52 ) // Check if new entry condition is given
{
OpenBuy_= true ;
}
else
if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 42 )
{
OpenSell_= true ;
}
} // end of For loop
Merhaba Mladen,
Kodu buna göre değiştirdim, şimdi daha iyi olduğunu mu düşünüyorsun?
Lütfen bir bakar mısınız? Bu kod hala sözde durumda, henüz test edilmedi.
Şimdiden teşekkür ederim!
//+-------------------------------------------------------------------------+
int PositionIndex;//| Signal close Buy / close Sell / Open new BUY or SELL order when possible
int TotalNumberOfOrders;
TotalNumberOfOrders = OrdersTotal (); // store number of Orders in the variable
for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --) // for loop to loop through all Orders . . COUNT DOWN TO ZERO !
{
if (! OrderSelect (PositionIndex, SELECT_BY_POS , MODE_TRADES )) continue ; // if the OrderSelect fails advance the loop to the next PositionIndex
if ( OrderMagicNumber () == MagicNumber // does the Order's Magic Number match our EA's magic number ?
&& OrderSymbol () == Symbol () // does the Order's Symbol match the Symbol our EA is working on ?
&& ( OrderType () == OP_BUY // is the Order a Buy Order ?
|| OrderType () == OP_SELL )) // or is it a Sell Order ?
if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), Slippage*PipMultiplier,DarkOrange )) //try to close the order
Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError ()); //if the Order Close failed print some helpful information
if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 52 ) // Check if new entry condition is given
{
OpenBuy_= true ;
}
else
if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 42 )
{
OpenSell_= true ;
}
} // end of For loop
Mntivana
İşte B&S için EA, 15 uyarı kaldı. Biri bana küresel Bildirgeyi nasıl temizleyeceğimi söyleyebilirse "'sondaki kâr' beyanı, 62. satırdaki küresel beyanı gizler" gibi mnt-BuyersSatıcılar EA v1.00.mq4 915 53” Temizleyeceğim.
Ayrıca çalıştırmak için birkaç dosyaya ihtiyacım var.
2016.12.17 16:01:35.347 2016.11.01 00:47 'C:\FXPrograms\Tallinex\MQL4\indicators\4BARS-MTF-BBH 1.06.ex4' dosyasını açamıyor [2]
2016.12.17 16:01:29.815 2016.11.01 00:17 'C:\FXPrograms\Tallinex\MQL4\indicators\BullBearHelper 1.00.ex4' dosyasını açamıyor [2]
2016.12.17 16:01:29.815 2016.11.01 00:17 'C:\FXPrograms\Tallinex\MQL4\indicators\AdaptiveLaguerreFilter.ex4' dosyasını açamıyor [2]
Ve "Eğim Yön Çizgisi"
Bana bildirin
Işın
tüccar
İlginiz için teşekkürler, indi paketi eklenmiştir, aslında tüm sistem FF'dendir (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sels-ea.html)
gspe üzerinde çalışıyordu ama tüm EA çerçevesinin "funyoo" dan olduğunu düşünüyorum ve yalnızca yeni EA oluşturmak için örnek/model çerçevesi olarak EA koduyla ilgileniyorum, stratejilerinin geri kalanı tahminime göre meyve dolu değil , bundan daha iyisini oluşturabiliriz, şimdilik 100 kat daha iyi göstergelerimiz var :)
Saygılarımızla
"crsnapebtinternetcom " ve MLADEN ..... sonra test ettim ve işe yaradı ancak bazı sertifikalara ihtiyacı var :)
Saygılarımızla
tüccar
İlginiz için teşekkürler, indi paketi ektedir, aslında tüm sistem FF'den (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sels-ea.html)
gspe üzerinde çalışıyordu ama tüm EA çerçevesinin "funyoo" dan olduğunu düşünüyorum ve yalnızca yeni EA oluşturmak için örnek/model çerçevesi olarak EA koduyla ilgileniyorum, stratejilerinin geri kalanı tahminime göre meyve dolu değil , bundan daha iyisini oluşturabiliriz, şimdilik 100 kat daha iyi göstergelerimiz var :)
Saygılarımızla
Çocuklar
Funyoos EA'ları, martingale on back testini kullanırken genellikle iyi sonuçlar verdi. bunları kullanırken çok dikkatli olurdum