Eklendi. Değilim. Gruplar halinde açılır. Büyü - yok sayar
Kod yazarken mantığını Rusça'ya çevirin. İlk olarak, seçilen sipariş bir piyasa emri değilse, daha sonra bir sonraki iterasyona, enstrüman eurobuck değilse bir sonraki iterasyona ve sihir eşit değilse, karşılaştırmaların yapıldığı belirli bir döngüye sahipsiniz. senin sihrin, sonra bir sonraki yinelemeye. ve koşul karşılanırsa, daha sonra. Döngünün sonunda, sonuna kadar tamamlanan döngü sayısını sayarsınız. Döngü sona erer ve program koşullara göre sipariş açmaya başlar. Koşullardan birinin her zaman doğru olduğu göz önüne alındığında, bir emir açılır. Ve bu her kene üzerinde.
Kod yazarken mantığını Rusça'ya çevirin. İlk olarak,seçilen sipariş bir piyasa emri değilse, daha sonra bir sonraki iterasyona, enstrüman eurobuck değilse bir sonraki iterasyona ve sihir eşit değilse, karşılaştırmaların yapıldığı belirli bir döngüye sahipsiniz. senin sihrin, sonra bir sonraki yinelemeye. ve koşul karşılanırsa, daha sonra. Döngünün sonunda, sonuna kadar tamamlanan döngü sayısını sayarsınız. Döngü sona erer ve program koşullara göre sipariş açmaya başlar. Koşullardan birinin her zaman doğru olduğu göz önüne alındığında, bir emir açılır. Ve bu her kene üzerinde.
Anladım. Ancak bu durumda: if(OrderMagicNumber() == MagicNumber)continue; Verilen siparişler Magic tarafından verilen siparişler olarak alınır. Yani, Eurobucks için manuel olarak verilen bir sipariş göz ardı edilmeli ve bir sihirbazla başka bir uzman açılmalıdır.
OrdersTotal() - bu enfeksiyon, sihirbazla yapılan herhangi bir manipülasyona son verir.
Anladım. Ancak bu durumda: if(OrderMagicNumber() == MagicNumber)continue; Verilen siparişler Magic tarafından verilen siparişler olarak alınır. Yani, Eurobucks için manuel olarak verilen bir sipariş göz ardı edilmeli ve bir sihirbazla başka bir uzman açılmalıdır.
OrdersTotal() - bu enfeksiyon, sihirbazla yapılan herhangi bir manipülasyona son verir.
Kod yukarıdan aşağıya doğru yürütülür. döngü kurallarına göre bir döngüde. Döngüden sonra sipariş verirsiniz. if(OrderMagicNumber() == MagicNumber)devam; Döngü gövdesinin yürütülmesini keser ve döngünün yeni bir yinelemesini başlatır. Ve hepsi bu. Döngü sona erecek ve sipariş başlayacak. İşte böyle yazdın. Ve toplamsipariş sayısının bununla hiçbir ilgisi yok. Sihriniz ve enstrümanınız ile herhangi bir emir verilmemişse, o zaman bir emir verin diye şart koymak istiyorsanız, kod farklı olmalıdır.
Sipariş numaralarına göre döngü yapın. Büyümüzde ve enstrümanımızda bir emir varsa, dönüş baştan bir çıkıştır. Veya siparişinizin bulunduğu bir bayrak ve ontiklerin başında veya bayrağa göre kontrol etmeye başlayın.
Ve bir danışman komut dosyası, gösterge oluşturmak için bir şablondan bir danışman oluşturmak daha iyidir. Ana kod alanları daha doğru olacaktır.
datetime some_time= TimeCurrent ();
//extern string Symbol3 = ""; //Инструмент (""текущий по умолчанию)externint P= 1 ; //Таймфреймexternint MagicNumber = 100500 ;
int start()
{
int send;
double SL= 200 ;
double TP= 200 ;
double Lots= 1 ;
for ( int i = OrdersTotal (); i >= 0 ; i--)
{
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == "EURUSD" && OrderMagicNumber() == MagicNumber) return ( 0 );
}
if ((Close[ 0 ]>High[ 1 ])&&(n== 0 ))
{
send= OrderSend ( "EURUSD" ,OP_BUY,Lots,Ask, 3 ,Bid-SL* Point ,Bid+TP* Point ,MagicNumber);
}
if ((Close[ 0 ]<Low[ 1 ])&&(n== 0 ))
{
send= OrderSend ( "EURUSD" ,OP_SELL,Lots,Bid, 3 ,Ask+SL* Point ,Ask-TP* Point ,MagicNumber);
}
return ( 0 );
}
Kod yukarıdan aşağıya doğru yürütülür. döngü kurallarına göre bir döngüde. Döngüden sonra sipariş verirsiniz. if(OrderMagicNumber() == MagicNumber)devam; Döngü gövdesinin yürütülmesini keser ve döngünün yeni bir yinelemesini başlatır. Ve hepsi bu. Döngü sona erecek ve sipariş başlayacak. İşte böyle yazdın. Ve toplamsipariş sayısının bununla hiçbir ilgisi yok. Sihir ve enstrümanınızla emir verilmemişse, sipariş verin diye bir şart koymak istiyorsanız, kod farklı olmalıdır.
Sipariş numaralarına göre döngü yapın. Büyümüzde ve enstrümanımızda bir emir varsa, dönüş baştan bir çıkıştır. Veya siparişinizin bulunduğu bir bayrak ve ontiklerin başında veya bayrağa göre kontrol etmeye başlayın.
Ve bir danışman komut dosyası, gösterge oluşturmak için bir şablondan bir danışman oluşturmak daha iyidir. Ana kod alanları daha doğru olacaktır.
for ( int i = OrdersTotal (); i >= 0 ; i--)
{
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == "EURUSD" && OrderMagicNumber() == MagicNumber) return ( 0 );
}
Bunun bir çözüm olmadığını anlıyorum, ancak hangi yönde çalışmalı?
Zaten birkaç destyakov varintov denedim. Ya bir sipariş açar ya da kesintisiz, tuevukuchu.
Bu arada, OrderSekect'i yeniden sıralayın - bool tipi bir değişken ayarlanmalıdır, aksi takdirde yemin eder
İyi ve bilgili insanlar! MT5 EA'da Zarflar göstergesinin uygulanmasına yardımcı olun. EA'nın kendisi her onay işaretini işlemelidir (boşluk yok). Birkaç seçenek denedim, belgelere baktım, oradaki seçeneği beğendim, öyle görünüyor, ancak OnCalculate işleyicisi için. Henüz standart kitaplığı karıştırmayı denemedim ... Genel olarak, bu benim ilk uygulamam:
inputint Indicatorperiod = 3 ;
inputdouble EnvelopesDeviation = 0.07 ;
int handle; //--- переменная для хранения хэндла индикатора iEnvelopesdouble upperEnv[ 3 ], lowerEnv[ 3 ]; // динамические массивы для хранения численных значений Emvelopesdouble local_envelopesupper, local_envelopeslower; // в эти переменные пытаюсь получить значения верхней и нижней линии индикатора
...
intOnInit ()
...
handle= iEnvelopes ( _Symbol , _Period ,Indicatorperiod, 0 , MODE_LWMA , PRICE_OPEN ,EnvelopesDeviation);
...
voidOnTick ()
...
//--- Объявляем структуру, которая будут использоватьсяMqlRates mrate[ 3 ]; // Будет содержать цены, объемы и спред для каждого бараArraySetAsSeries (mrate, true );
//--- Получить исторические данные последних 3-х баровif ( CopyRates ( _Symbol , _Period , 0 , 3 ,mrate)!= 3 )
{
Alert ( "Ошибка копирования исторических данных - ошибка:" , GetLastError (), "!!" );
return ;
}
//--- Используя хэндлы индикаторов, копируем новые значения индикаторных буферов в массивыif ( CopyBuffer (handle, 0 , 0 , 3 ,upperEnv)< 2 || CopyBuffer (handle, 1 , 0 , 3 ,lowerEnv)< 2 )
{
Alert ( "Ошибка копирования буферов индикатора Envelopes - номер ошибки:" , GetLastError (), "!!" );
return ;
}
...
local_envelopesupper = upperEnv[ 1 ];
local_envelopeslower = lowerEnv[ 1 ];
...
Görsel test cihazında şunu alıyorum:
Bana neyin yanlış olduğunu ve nasıl daha iyi yapılacağını söyle?
Yapmak istediğin algoritmayı yazsan iyi olur. yani neye ihtiyaç olduğu belli değil.
Kod ilk mesajda. Çok basit: önceki yüksek/düşük seviyeyi kırın - bir anlaşma açın. Bu danışman tarafından açılan emirlerin, manuel olarak veya başka bir danışman tarafından açılan diğer emirlerle kesişmemesi, yani danışmanın bağımsız çalışması gereklidir.
Bütün internet karıştırdı. Tema oldukça hackneyed, ancak birçok varyasyon var. Bu kadar basit bir şey ve hiçbir yerde bulunamadı.
Kod ilk mesajda. Çok basit: önceki yüksek / düşük seviyeyi kırın - bir anlaşma açın. Bu danışman tarafından açılan emirlerin, manuel olarak veya başka bir danışman tarafından açılan diğer emirlerle kesişmemesi, yani danışmanın bağımsız çalışabilmesi için gereklidir.
Bütün internet karıştırdı. Tema oldukça hackneyed, ancak birçok varyasyon var. Bu kadar basit bir şey ve hiçbir yerde bulunamadı.
Danışmanın çalışmalarını adım adım tam olarak tanımlayın. İlk adım, seçilen enstrüman üzerinde sihrimizle emir olup olmadığını kontrol etmektir. Varsa işi bitiririz, yoksa sipariş veririz. Sipariş verdikten sonra, ne? Bunun gibi bir şey
Eklendi. Değilim. Gruplar halinde açılır. Büyü - yok sayar
Kod yazarken mantığını Rusça'ya çevirin. İlk olarak, seçilen sipariş bir piyasa emri değilse, daha sonra bir sonraki iterasyona, enstrüman eurobuck değilse bir sonraki iterasyona ve sihir eşit değilse, karşılaştırmaların yapıldığı belirli bir döngüye sahipsiniz. senin sihrin, sonra bir sonraki yinelemeye. ve koşul karşılanırsa, daha sonra. Döngünün sonunda, sonuna kadar tamamlanan döngü sayısını sayarsınız. Döngü sona erer ve program koşullara göre sipariş açmaya başlar. Koşullardan birinin her zaman doğru olduğu göz önüne alındığında, bir emir açılır. Ve bu her kene üzerinde.
Kod yazarken mantığını Rusça'ya çevirin. İlk olarak,seçilen sipariş bir piyasa emri değilse, daha sonra bir sonraki iterasyona, enstrüman eurobuck değilse bir sonraki iterasyona ve sihir eşit değilse, karşılaştırmaların yapıldığı belirli bir döngüye sahipsiniz. senin sihrin, sonra bir sonraki yinelemeye. ve koşul karşılanırsa, daha sonra. Döngünün sonunda, sonuna kadar tamamlanan döngü sayısını sayarsınız. Döngü sona erer ve program koşullara göre sipariş açmaya başlar. Koşullardan birinin her zaman doğru olduğu göz önüne alındığında, bir emir açılır. Ve bu her kene üzerinde.
Anladım. Ancak bu durumda: if(OrderMagicNumber() == MagicNumber)continue; Verilen siparişler Magic tarafından verilen siparişler olarak alınır. Yani, Eurobucks için manuel olarak verilen bir sipariş göz ardı edilmeli ve bir sihirbazla başka bir uzman açılmalıdır.
OrdersTotal() - bu enfeksiyon, sihirbazla yapılan herhangi bir manipülasyona son verir.Anladım. Ancak bu durumda: if(OrderMagicNumber() == MagicNumber)continue; Verilen siparişler Magic tarafından verilen siparişler olarak alınır. Yani, Eurobucks için manuel olarak verilen bir sipariş göz ardı edilmeli ve bir sihirbazla başka bir uzman açılmalıdır.
OrdersTotal() - bu enfeksiyon, sihirbazla yapılan herhangi bir manipülasyona son verir.Kod yukarıdan aşağıya doğru yürütülür. döngü kurallarına göre bir döngüde. Döngüden sonra sipariş verirsiniz. if(OrderMagicNumber() == MagicNumber)devam; Döngü gövdesinin yürütülmesini keser ve döngünün yeni bir yinelemesini başlatır. Ve hepsi bu. Döngü sona erecek ve sipariş başlayacak. İşte böyle yazdın. Ve toplamsipariş sayısının bununla hiçbir ilgisi yok. Sihriniz ve enstrümanınız ile herhangi bir emir verilmemişse, o zaman bir emir verin diye şart koymak istiyorsanız, kod farklı olmalıdır.
Sipariş numaralarına göre döngü yapın. Büyümüzde ve enstrümanımızda bir emir varsa, dönüş baştan bir çıkıştır. Veya siparişinizin bulunduğu bir bayrak ve ontiklerin başında veya bayrağa göre kontrol etmeye başlayın.
Ve bir danışman komut dosyası, gösterge oluşturmak için bir şablondan bir danışman oluşturmak daha iyidir. Ana kod alanları daha doğru olacaktır.
Kod yukarıdan aşağıya doğru yürütülür. döngü kurallarına göre bir döngüde. Döngüden sonra sipariş verirsiniz. if(OrderMagicNumber() == MagicNumber)devam; Döngü gövdesinin yürütülmesini keser ve döngünün yeni bir yinelemesini başlatır. Ve hepsi bu. Döngü sona erecek ve sipariş başlayacak. İşte böyle yazdın. Ve toplamsipariş sayısının bununla hiçbir ilgisi yok. Sihir ve enstrümanınızla emir verilmemişse, sipariş verin diye bir şart koymak istiyorsanız, kod farklı olmalıdır.
Sipariş numaralarına göre döngü yapın. Büyümüzde ve enstrümanımızda bir emir varsa, dönüş baştan bir çıkıştır. Veya siparişinizin bulunduğu bir bayrak ve ontiklerin başında veya bayrağa göre kontrol etmeye başlayın.
Ve bir danışman komut dosyası, gösterge oluşturmak için bir şablondan bir danışman oluşturmak daha iyidir. Ana kod alanları daha doğru olacaktır.
Bunun bir çözüm olmadığını anlıyorum, ancak hangi yönde çalışmalı?
Zaten birkaç destyakov varintov denedim. Ya bir sipariş açar ya da kesintisiz, tuevukuchu.
Bu arada, OrderSekect'i yeniden sıralayın - bool tipi bir değişken ayarlanmalıdır, aksi takdirde yemin eder
Bunun bir çözüm olmadığını anlıyorum, ancak hangi yönde çalışmalı?
Zaten birkaç destyakov varintov denedim. Ya bir sipariş açar ya da kesintisiz, tuevukuchu.
Bu arada, OrderSekect'i yeniden sıralayın - bool tipi bir değişken ayarlanmalıdır, aksi takdirde yemin eder
Evet, yemin etmeliyim ki, hiçbir yere dönmüyor
Yapmak istediğin algoritmayı yazsan iyi olur. yani neye ihtiyaç olduğu belli değil.
Bunun bir çözüm olmadığını anlıyorum, ancak hangi yönde çalışmalı?
Zaten birkaç destyakov varintov denedim. Ya bir sipariş açar ya da kesintisiz, tuevukuchu.
Bu arada, OrderSekect'i yeniden sıralayın - bool tipi bir değişken ayarlanmalıdır, aksi takdirde yemin eder
return (0) yerine anlam devam etmeli
İyi ve bilgili insanlar! MT5 EA'da Zarflar göstergesinin uygulanmasına yardımcı olun. EA'nın kendisi her onay işaretini işlemelidir (boşluk yok). Birkaç seçenek denedim, belgelere baktım, oradaki seçeneği beğendim, öyle görünüyor, ancak OnCalculate işleyicisi için. Henüz standart kitaplığı karıştırmayı denemedim ... Genel olarak, bu benim ilk uygulamam:
Görsel test cihazında şunu alıyorum:

Bana neyin yanlış olduğunu ve nasıl daha iyi yapılacağını söyle?Evet, yemin etmeliyim, hiçbir yere dönmüyor
Yapmak istediğin algoritmayı yazsan iyi olur. yani neye ihtiyaç olduğu belli değil.
Kod ilk mesajda. Çok basit: önceki yüksek/düşük seviyeyi kırın - bir anlaşma açın. Bu danışman tarafından açılan emirlerin, manuel olarak veya başka bir danışman tarafından açılan diğer emirlerle kesişmemesi, yani danışmanın bağımsız çalışması gereklidir.
Bütün internet karıştırdı. Tema oldukça hackneyed, ancak birçok varyasyon var. Bu kadar basit bir şey ve hiçbir yerde bulunamadı.
Kod ilk mesajda. Çok basit: önceki yüksek / düşük seviyeyi kırın - bir anlaşma açın. Bu danışman tarafından açılan emirlerin, manuel olarak veya başka bir danışman tarafından açılan diğer emirlerle kesişmemesi, yani danışmanın bağımsız çalışabilmesi için gereklidir.
Bütün internet karıştırdı. Tema oldukça hackneyed, ancak birçok varyasyon var. Bu kadar basit bir şey ve hiçbir yerde bulunamadı.
return (0) yerine anlam devam etmeli