İyi akşamlar. Lütfen bir danışmanla yardım edin, netlik için her şeyi şekilde tasvir etmeye çalıştım. Diyelim ki NEXT çubuğunun fiyatı "Dodge" un maksimum değerinden daha yüksek olduğunda bir '' Kaçınma '' oluşuyor - satın alıyorum, T/P, diyelim ki 15 puan aldım ve aynı çubuktaki fiyat geçerli yukarı ve T/P 15 puanlı sipariş (Buy_2) tekrar açılıyor, ancak Dodge'dan sonra 1. çubukta bu 2. açılışa (Buy_2)ihtiyacım yok . Bu yanlış anlaşılma nasıl giderilir???
Netlik için, şekildeki her şeyi tasvir etmeye çalıştım.
Şimdi aynı şeyi sadece mq4'te çizmeye çalışın. Bir şey net değilse, burada sorular için bir konu. Ve sıfırdan danışmanlar oluşturmak için bir İş hizmeti var
Stratejinin özü: Stokastik sinyalde (5,14,3) giriş, stokastikte de sadece farklı bir periyotla (5,3,3) çıkış. Öyleyse, ters sinyalde değil de stokastikte nasıl çıkış yapabileceğinizi anlamıyorum? Bir sorunum var ve nasıl çözüleceğine dair hiçbir fikrim yok, açıklamaya çalışacağım. Yani gönderdiğim kodda 2 fonksiyon var
//+------------------------------------------------------------------+//| подготовить массив тикетов для закрытия |//+------------------------------------------------------------------+void PrepareTicketsToClose( int signal, bool Revers, int & ticketsClose[][ 2 ], double & lots[], double arrayTickets[][ 9 ])
{
int size= ArrayRange (arrayTickets, 0 );
//----if (size== 0 ) return ;
int i,type,ticket,closeSize;
for (i= 0 ;i<size;i++)
{
type=arrayTickets[i][ 1 ];
// если тип ордера не рыночный, то пропускаемif (type>OP_SELL) continue ;
if (Revers) // перевернем тип рыночного ордера
{
if (type==OP_BUY) type=OP_SELL; else type=OP_BUY;
}
// тут решаем для каждого открытого ордера его судьбу// оставить в рынке или добавить в массив на закрытиеif (type==OP_BUY)
{
//// код разрешающий оставить покупку// как примерif (signal==OP_BUY) continue ;
}
if (type==OP_SELL)
{
//// код разрешающий оставить продажу// как примерif (signal==OP_SELL) continue ;
}
closeSize= ArrayRange (ticketsClose, 0 );
ArrayResize (ticketsClose,closeSize+ 1 );
ArrayResize (lots,closeSize+ 1 );
ticketsClose[closeSize][ 0 ] = arrayTickets[i][ 0 ]; // # тикета
ticketsClose[closeSize][ 1 ] = arrayTickets[i][ 1 ]; // тип ордера// здесь укажем сколько лотов нужно закрыть
lots[closeSize] = arrayTickets[i][ 2 ]; // закрываемый объем// можно закрывать частично, тогда нужно переписать строку сверху
}
//----return ;
}
//+------------------------------------------------------------------+//| Закрывает ордера с указанными тикетами |//+------------------------------------------------------------------+void CloseMarketOrders( int ticketsArray[][ 2 ], double lotsArray[])
{
//----int i,size= ArrayRange (ticketsArray, 0 );
if (size== 0 ) return ;
int ticket,type;
double lots;
bool res;
int total= OrdersTotal ();
for (i= 0 ;i<size;i++)
{
ticket = ticketsArray[i][ 0 ];
type = ticketsArray[i][ 1 ];
lots = lotsArray[i];
RefreshRates (); // на всякий случай обновим сведения о рыночном окружении// блок закрытия покупокif (type==OP_BUY)
{
res = OrderClose (ticket,lots,Bid,Slippage, Orange );
if (!res)
{
Print ( "Не удалось закрыть ордер в покупку #" ,ticket, "! Ошибка №" , GetLastError ());
// дальнейшая обработка ошибки, написать самостоятельно
}
}
// блок закрытия продажif (type==OP_SELL)
{
res = OrderClose (ticket,lots,Ask,Slippage, Orange );
if (!res)
{
Print ( "Не удалось закрыть ордер в продажу #" ,ticket, "! Ошибка №" , GetLastError ());
// дальнейшая обработка ошибки, написать самостоятельно
}
}
}
//----return ;
}
Void ReadTicketsToClose(int signal, bool Revers, int & TicketClose[][2], double & lot[],double arrayTickets[][9]) işlevinde, siparişten ayrılmaya karar vereceğiniz bir koşul ayarlamanız gerekir yada kapat... Koşulları ayarlamayı denedim ama işe yaramıyor.... Belki birileri bakıp bu işlevlerde bir hata olup olmadığını gösterir ya da ben batırdım ....
Merhaba! Lütfen bana ayrıntılı alıntıların arşivini nereden indirebileceğimi söyleyin (kene veya dakika)? MT 4'teki alıntıların Arşivinde bulunan veriler (kedi ağladı) 5 test için sadece günler.
Tünaydın. Sistemin AL ve SAT için üç giriş noktası vardır. Ancak bir sinyal geldiğinde, sinyal var olduğu sürece her tikte pozisyonlar açılır. Bir yerde bayraklarla ilgili bir hata var. Anlamaya yardım edin lütfen.
Tünaydın. Sistemin AL ve SAT için üç giriş noktası vardır. Ancak bir sinyal geldiğinde, sinyal var olduğu sürece her tikte pozisyonlar açılır. Bir yerde bayraklarla ilgili bir hata var. Anlamaya yardım edin lütfen.
OrdersTotal (), halihazırda açık olan pozisyonların sayısını döndürür, yani. Onun yardımıyla, halihazırda açık bir pozisyon olup olmadığını kontrol edebilirsiniz.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
İyi akşamlar. Lütfen bir danışmanla yardım edin, netlik için her şeyi şekilde tasvir etmeye çalıştım. Diyelim ki NEXT çubuğunun fiyatı "Dodge" un maksimum değerinden daha yüksek olduğunda bir '' Kaçınma '' oluşuyor - satın alıyorum, T/P, diyelim ki 15 puan aldım ve aynı çubuktaki fiyat geçerli yukarı ve T/P 15 puanlı sipariş (Buy_2) tekrar açılıyor, ancak Dodge'dan sonra 1. çubukta bu 2. açılışa (Buy_2) ihtiyacım yok . Bu yanlış anlaşılma nasıl giderilir???
Sevgili profesyoneller ve sadece bilgili!
Secdedeyim - BB göstergesi anlamadığım sinyaller veriyor ("Kırmızı-Yeşil-Kırmızı" değil!). Daha kesin olmak gerekirse, aşağıdaki çağrıyı yapıyorum:
bolup = iBands(Symbol(), 0, 24, 0, 2, 0, 1, 1);
kalın = iBands(Symbol(), 0, 24, 0, 2, 0, 2, 1);
bolmd = (bolup + kalın) / 2;
Print("Üst bantlar = ", bolup);
Print("Bantlar alt = ", kalın);
Print("Bant medyası = ", bolmd);
Sonuç olarak, 3 değişkenin tümü aynı değeri verir. >8-O
Bir çift euro, TF - H1. Herhangi bir fikir???
Şimdiden teşekkürler...
Netlik için, şekildeki her şeyi tasvir etmeye çalıştım.
Sevgili profesyoneller ve sadece bilgili!
Secdedeyim - BB göstergesi anlamadığım sinyaller veriyor ("Kırmızı-Yeşil-Kırmızı" değil!). Daha kesin olmak gerekirse, aşağıdaki çağrıyı yapıyorum:
bolup = iBands(Symbol(), 0, 24, 0 , 2, 0, 1, 1);
kalın = iBands(Symbol(), 0, 24, 0 , 2, 0, 2, 1);
bolmd = (bolup + kalın) / 2;
Print("Üst bantlar = ", bolup);
Print("Bantlar alt = ", kalın);
Print("Bant medyası = ", bolmd);
Sonuç olarak, 3 değişkenin tümü aynı değeri verir. >8-O
Bir çift euro, TF - H1. Herhangi bir fikir???
Şimdiden teşekkürler...
Bir sorunum var ve nasıl çözüleceğine dair hiçbir fikrim yok, açıklamaya çalışacağım.
Yani gönderdiğim kodda 2 fonksiyon var
Void ReadTicketsToClose(int signal, bool Revers, int & TicketClose[][2], double & lot[],double arrayTickets[][9]) işlevinde, siparişten ayrılmaya karar vereceğiniz bir koşul ayarlamanız gerekir yada kapat...
Koşulları ayarlamayı denedim ama işe yaramıyor....
Belki birileri bakıp bu işlevlerde bir hata olup olmadığını gösterir ya da ben batırdım ....
Test cihazında buna ihtiyacınız yok, ancak bir demoda veya gerçek bir demoda yoğun bir ticaret akışı hakkında bir mesaj alacaksınız.
Tünaydın. Sistemin AL ve SAT için üç giriş noktası vardır. Ancak bir sinyal geldiğinde, sinyal var olduğu sürece her tikte pozisyonlar açılır. Bir yerde bayraklarla ilgili bir hata var. Anlamaya yardım edin lütfen.
Tünaydın. Sistemin AL ve SAT için üç giriş noktası vardır. Ancak bir sinyal geldiğinde, sinyal var olduğu sürece her tikte pozisyonlar açılır. Bir yerde bayraklarla ilgili bir hata var. Anlamaya yardım edin lütfen.
OrdersTotal (), halihazırda açık olan pozisyonların sayısını döndürür, yani. Onun yardımıyla, halihazırda açık bir pozisyon olup olmadığını kontrol edebilirsiniz.