Haklısın, kodunun sadece bir kısmını görüyorum ve muhtemelen kafanda farklı planlar var ve kesinlikle 4000 satır kod okumak kafamı netleştirmeye yardımcı olmuyor - benim de.
EA'nızın bir ticareti kapatamayacağını söylediniz. Bu yüzden buna neyin sebep olduğunu bulmalı ve onunla uğraşmalıyız. Ben böyle görüyorum:
:D
#include <stdlib.mqh>
...
for ( int pos = OrdersTotal(); pos >= 0 ; pos--)
{
if ( OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)
&& OrderMagicNumber() == My_Magic_Number
&& OrderSymbol() == Symbol())
{
if (OrderType() = OP_BUY) // we close long
{
for ( int try_to_close = 1 ; try_to_close <= 100 ; try_to_close ++)
{
bool success = OrderClose (OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Yellow);
if (success = false )
{
int Error = GetLastError();
Print ( "Unable to close ticket " ,OrderTicket(), " with error " ,ErrorDescription(Error)); // from #include <stdlib.mqh>if (TRY_CLOSE_AGAIN_OR_NOT(Error) == false ) break ; //
}
}
}
if (OrderType() = OP_SELL) // we close short
{
// do the same with sell
}
}
}
//+------------------------------------------------------------------+bool TRY_CLOSE_AGAIN_OR_NOT( int err) // True
{
switch (err)
{
case1 : return ( false ); //error_string="no error"; case2 : return ( false ); //error_string="common error"; case3 : return ( false ); //error_string="invalid trade parameters"; case4 : Sleep ( 500 ); return ( true ); //error_string="trade server is busy"; case5 : return ( false ); //error_string="old version of the client terminal"; case6 : Sleep ( 500 ); return ( true ); //error_string="no connection with trade server"; case7 : return ( false ); //error_string="not enough rights"; case8 : Sleep ( 500 ); return ( true ); //error_string="too frequent requests"; case9 : return ( false ); //error_string="malfunctional trade operation (never returned error)"; case64 : return ( false ); //error_string="account disabled"; case65 : return ( false ); //error_string="invalid account"; case128 : Sleep ( 500 ); return ( true ); //error_string="trade timeout"; case129 : return ( false ); //error_string="invalid price"; case130 : return ( false ); //error_string="invalid stops"; case131 : return ( false ); //error_string="invalid trade volume"; case132 : return ( false ); //error_string="market is closed"; case133 : return ( false ); //error_string="trade is disabled"; case134 : return ( false ); //error_string="not enough money"; case135 : return ( false ); //error_string="price changed"; case136 : return ( false ); //error_string="off quotes"; case137 : Sleep ( 500 ); return ( true ); //error_string="broker is busy (never returned error)"; case138 : return ( false ); /// /error_string="requote"; case139 : return ( false ); //error_string="order is locked"; case140 : return ( false ); //error_string="long positions only allowed"; case141 : return ( false ); //error_string="too many requests"; //case 145: return (true); //error_string="modification denied because order too close to market"; case146 : Sleep ( 500 ); return ( true ); //error_string="trade context is busy"; //case 147: return (true); error_string="expirations are denied by broker"; //case 148: return (true); error_string="amount of open and pending orders has reached the limit"; //case 149: return (true); error_string="hedging is prohibited"; case150 : return ( false ); //error_string="prohibited by FIFO rules"; default : return ( false );
}
return ( false ); // can not manage the err we get out
}
Yani, TÜM siparişlerin kapalı OLMADIĞI bir sorununuz var. Yapıştırdığınız bu kod - TÜM siparişleri ASLA KAPATMAYACAKTIR. Bu yüzden biraz yardım istiyorsanız - cadının çalıştığı TÜM kodu KAPATMA emriyle yapıştırın. Tüm You kodlarını yapıştırmaya gerek yok (gizli kalmasını istediğinizi anlıyorum), ancak kodun bir kısmını yapıştırmadan asla yardım alamazsınız, cadı soruna dahil (bu durumda - KISA sipariş kapanışı için kod YOKTUR) ).
Haklısın, kodunun sadece bir kısmını görüyorum ve muhtemelen kafanda farklı planlar var ve kesinlikle 4000 satır kod okumak kafamı netleştirmeye yardımcı olmuyor - benim de.
EA'nızın bir ticareti kapatamayacağını söylediniz. Bu yüzden buna neyin sebep olduğunu bulmalı ve onunla uğraşmalıyız. Ben böyle görüyorum:
:D
Bu fikir için onewithzachy'e teşekkürler. Burada olduğu gibi her yerde yararlıdır.
Lütfen birkaç saat daha çalışmasına izin verin, sizi güncelleyeceğime söz veriyorum.
20000 tekrar denemenin biraz fazla olduğunu düşünmüyor musunuz? Arka arkaya 5 kez kapanmazsa, bırakma zamanıdır.
Kapatma başarısız olursa hata mesajını yazdırmak güzel olurdu.
Merhaba crossy,
Haklısın, kodunun sadece bir kısmını görüyorum ve muhtemelen kafanda farklı planlar var ve kesinlikle 4000 satır kod okumak kafamı netleştirmeye yardımcı olmuyor - benim de.
EA'nızın bir ticareti kapatamayacağını söylediniz. Bu yüzden buna neyin sebep olduğunu bulmalı ve onunla uğraşmalıyız. Ben böyle görüyorum:
:D
Yani, TÜM siparişlerin kapalı OLMADIĞI bir sorununuz var. Yapıştırdığınız bu kod - TÜM siparişleri ASLA KAPATMAYACAKTIR. Bu yüzden biraz yardım istiyorsanız - cadının çalıştığı TÜM kodu KAPATMA emriyle yapıştırın. Tüm You kodlarını yapıştırmaya gerek yok (gizli kalmasını istediğinizi anlıyorum), ancak kodun bir kısmını yapıştırmadan asla yardım alamazsınız, cadı soruna dahil (bu durumda - KISA sipariş kapanışı için kod YOKTUR) ).
Merhaba crossy,
Haklısın, kodunun sadece bir kısmını görüyorum ve muhtemelen kafanda farklı planlar var ve kesinlikle 4000 satır kod okumak kafamı netleştirmeye yardımcı olmuyor - benim de.
EA'nızın bir ticareti kapatamayacağını söylediniz. Bu yüzden buna neyin sebep olduğunu bulmalı ve onunla uğraşmalıyız. Ben böyle görüyorum:
:D
Bu fikir için onewithzachy'e teşekkürler. Burada olduğu gibi her yerde yararlıdır.
Lütfen birkaç saat daha çalışmasına izin verin, sizi güncelleyeceğime söz veriyorum.
Raptor'a da güzel katkısı için teşekkürler.
Y.
Merhaba,
Söz verdiğim gibi, 6 saat sonra EA çalışıyor, sizin sayenizde her şey düzgün çalışıyor.
iyi düşünmek.
Bu arada, devam edelim ve umarım herhangi bir sıkıntı olmaz.
Y.
Merhaba,
Söz verdiğim gibi, 6 saat sonra EA çalışıyor, sizin sayenizde her şey düzgün çalışıyor.
iyi düşünmek.
Bu arada, devam edelim ve umarım herhangi bir sıkıntı olmaz.
Y.
Harika!, Lütfen bizi bir hafta sonra tekrar güncelleyin
:D