voidOnTick ()
{
TimeCurrent (dt);
//--- Достаточно ли количество баров для работыif ( Bars ( _Symbol , _Period )< 10 ) // общее количество баров на графике меньше 10?
{
Alert ( "На графике меньше 10 баров, советник не будет работать!!" );
return ;
}
//--- сначала нужно записать в массивы значения буферов индиктора Fractal//--- заполнение данными буфераArraySetAsSeries (Signal, true );
ArraySetAsSeries (Main, true );
if ( CopyBuffer (Stochastic_handle, 0 , 0 , 100 ,Main)<= 0 ) return ;
if ( CopyBuffer (Stochastic_handle, 1 , 0 , 100 ,Signal)<= 0 ) return ;
double Main_1=Main[ 1 ];
Main_1= NormalizeDouble (Main_1, 5 );
Print ( "Main_1=" , DoubleToString (Main_1, 5 ));
double Main_2=Main[ 2 ];
Main_2= NormalizeDouble (Main_2, 5 );
double Main_3=Main[ 3 ];
Main_3= NormalizeDouble (Main_3, 5 );
double Signal_1=Signal[ 1 ];
Signal_1= NormalizeDouble (Signal_1, 5 );
Print ( "Signal_1=" , DoubleToString (Signal_1, 5 ));
double Signal_2=Signal[ 2 ];
Signal_2= NormalizeDouble (Signal_2, 5 );
double Signal_3=Signal[ 3 ];
Signal_3= NormalizeDouble (Signal_3, 5 );
// Для сохранения значения времени бара мы используем static-переменную Old_Time.// При каждом выполнении функции OnTick мы будем сравнивать время текущего бара с сохраненным временем.// Если они не равны, это означает, что начал строится новый бар.staticdatetime Old_Time;
datetime New_Time[ 1 ];
bool IsNewBar= false ;
// копируем время текущего бара в элемент New_Time[0]int copied= CopyTime ( _Symbol , _Period , 0 , 1 ,New_Time);
if (copied> 0 ) // ok, успешно скопировано
{
if (Old_Time!=New_Time[ 0 ]) // если старое время не равно
{
IsNewBar= true ; // новый барif ( MQL5InfoInteger ( MQL5_DEBUGGING )) Print ( "Новый бар" ,New_Time[ 0 ], "старый бар" ,Old_Time);
Old_Time=New_Time[ 0 ]; // сохраняем время бара
}
}
else
{
Alert ( "Ошибка копирования времени, номер ошибки =" , GetLastError ());
ResetLastError ();
return ;
}
// открытие покупок
if (Main_1>Signal_1&&Main_2<Signal_2&&Main_3<Signal_3&&Main_2< 20 )
{
if (IsNewBar!= false )
{
{
open_by_market();
}
}
}
// закрытие покупок if (Signal_3> 80 &&Signal_2> 80 &&Signal_1< 80 )
{
if ( PositionsTotal ()> 0 )
{
for ( int i= 0 ;i< PositionsTotal ();i++)
{
ulong orders_ticket= PositionGetTicket (i);
if ((( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY ) ))
{ trade.PositionClose(orders_ticket); }
}
}
}
}
tünaydın. Lütfen iki görevin nasıl uygulanacağını belirtin (satın alma sinyalleri örneğinde).
verilen: giriş noktası - 20'nin altındaki stokastik çizgilerin kesişimi
anlaşmayı kapatmak - 80. seviyeyi yavaş bir stokastik çizgi ile yukarıdan aşağıya geçmek
1 görev. böylece açık pozisyon ile fiyat belirli bir deltayı aştığında yeni bir anlaşma açılacaktır. ekteki resimde olduğu gibi aynı seviyede birkaç pozisyon açmayın
2 görev. böylece kapanış birincide değil ikincide olur, 80. seviyenin yavaş bir stokastik çizgi ile yukarıdan aşağıya geçişi
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
tünaydın. Lütfen iki görevin nasıl uygulanacağını belirtin (satın alma sinyalleri örneğinde).
verilen: giriş noktası - 20'nin altındaki stokastik çizgilerin kesişimi
anlaşmayı kapatmak - 80. seviyeyi yavaş bir stokastik çizgi ile yukarıdan aşağıya geçmek
1 görev. böylece açık pozisyon ile fiyat belirli bir deltayı aştığında yeni bir anlaşma açılacaktır. ekteki resimde olduğu gibi aynı seviyede birkaç pozisyon açmayın
2 görev. böylece kapanış birincide değil ikincide olur, 80. seviyenin yavaş bir stokastik çizgi ile yukarıdan aşağıya geçişi
Lütfen, oluşturulan Expert Advisor'da OnTick işlevindeki konumla ilgili bilgilere nasıl erişeceğimi söyleyin. Açık olsun ya da olmasın. Konum için işaretçiyi nereden alabilirim? Yoksa başka bir şekilde mi yapılmalı?
VHS : Lütfen, oluşturulan Expert Advisor'da OnTick işlevindeki konumla ilgili bilgilere nasıl erişeceğimi söyleyin. Açık olsun ya da olmasın. Konum için işaretçiyi nereden alabilirim? Yoksa başka bir şekilde mi yapılmalı?
Uzman Danışman, Sihirbaz tarafından özel bir sinyal sınıfına ve özel bir ticaret sınıfına göre tasarlanmıştır. EA'nın kodu standarttır. OnTick, ExtExpert.OnTick()'i çalıştırır, geri kalanı standart kütüphanedendir . Aslında bu soru, kimsenin cevaplamadığı bir öncekinin devamı niteliğindedir. Wizard tarafından tasarlanan Expert Advisor'ın özel sinyal sınıfını yalnızca pozisyon açmak için kullanmasını ve sinyal sınıfından gelen sinyalleri göz ardı ederek yalnızca ticaret için kapatmasını istiyorum. Sinyallerin çalışmasını nasıl görmezden geleceğimi buldum. Ama onTick'te yoksaymayı etkinleştirmek için açık bir pozisyon olup olmadığı hakkında nasıl bilgi alacağımı anlamıyorum.
Evet, Artyom, çok teşekkür ederim. Görünüşe göre otomatik düzeltme (veya çarpık eller). Hem özel sınıf hem de kapanış ticaret değil, takip ediyor.
CExpert sınıfında Processing yöntemi önce Direction'a gider ve sinyal sınıfından bir sinyal olup olmadığını kontrol eder. Ve sonra (yalnızca bir SelectPosition konumu varsa) İzi kontrol eder. Sonuç olarak, eğer bir açık pozisyon varsa, sinyal sınıfından bir sinyal alarak, takip eden sınıftan sinyallerin yokluğunda bazen kapanır.
Takip eden sınıftan açık bir pozisyonun varlığı hakkında bilgi almak ve OnTick'ten Ignore'a geçirmek için önceki seçenek işe yaramadı. OnInit'te takip eden nesneyi nasıl hatırlayacağımı ve OnTick'te ondan bilgi almayı öğrendim. Ancak bu sadece pozisyon açıkken çalışır. Ve kapatıldıktan sonra, işleme artık sonuna girmez ve Yoksay yok sayılmaya devam eder. Yani, son dokunuş kalır: pozisyonu kapattıktan sonra OnTick'te bu anı belirleyin ve Ignore değerini "0"a döndürün. Ancak OnTick'te bir pozisyonun (varlığı/yokluğu) hakkında etkili bir şekilde nasıl bilgi alacağımı anlamıyorum.
VHS : Evet, Artyom, çok teşekkür ederim. Görünüşe göre otomatik düzeltme (veya çarpık eller). Hem özel sınıf hem de kapanış ticaret değil, takip ediyor.
CExpert sınıfında Processing yöntemi önce Direction'a gider ve sinyal sınıfından bir sinyal olup olmadığını kontrol eder. Ve sonra (yalnızca bir SelectPosition konumu varsa) İzi kontrol eder. Sonuç olarak, eğer bir açık pozisyon varsa, sinyal sınıfından bir sinyal alarak, takip eden sınıftan sinyallerin yokluğunda bazen kapanır.
Takip eden sınıftan açık bir pozisyonun varlığı hakkında bilgi almak ve OnTick'ten Ignore'a geçirmek için önceki seçenek işe yaramadı. OnInit'te takip eden nesneyi nasıl hatırlayacağımı ve OnTick'te ondan bilgi almayı öğrendim. Ancak bu sadece pozisyon açıkken çalışır. Ve kapatıldıktan sonra, işleme artık sonuna girmez ve Yoksay yok sayılmaya devam eder. Yani, son dokunuş kalır: pozisyonu kapattıktan sonra OnTick'te bu anı belirleyin ve Ignore değerini "0"a döndürün. Ancak OnTick'te bir pozisyonun (varlığı/yokluğu) hakkında etkili bir şekilde nasıl bilgi alacağımı anlamıyorum.
Her şeyi çok daha kolay yapabileceğinizi düşünüyorum - danışmanda KAPAT eşiğini 100'e ayarlayın ve sinyalin ağırlığını 0,5 verin - bu nedenle 0,5 ağırlıklı bir sinyal ASLA 100 eşiğini aşamaz
tünaydın. Lütfen iki görevin nasıl uygulanacağını belirtin (satın alma sinyalleri örneğinde).
verilen: giriş noktası - 20'nin altındaki stokastik çizgilerin kesişimi
anlaşmayı kapatmak - 80. seviyeyi yavaş bir stokastik çizgi ile yukarıdan aşağıya geçmek
1 görev. böylece açık pozisyon ile fiyat belirli bir deltayı aştığında yeni bir anlaşma açılacaktır. ekteki resimde olduğu gibi aynı seviyede birkaç pozisyon açmayın
2 görev. böylece kapanış birincide değil ikincide olur, 80. seviyenin yavaş bir stokastik çizgi ile yukarıdan aşağıya geçişi
tünaydın. Lütfen iki görevin nasıl uygulanacağını belirtin (satın alma sinyalleri örneğinde).
verilen: giriş noktası - 20'nin altındaki stokastik çizgilerin kesişimi
anlaşmayı kapatmak - 80. seviyeyi yavaş bir stokastik çizgi ile yukarıdan aşağıya geçmek
1 görev. böylece açık pozisyon ile fiyat belirli bir deltayı aştığında yeni bir anlaşma açılacaktır. ekteki resimde olduğu gibi aynı seviyede birkaç pozisyon açmayın
2 görev. böylece kapanış birincide değil ikincide olur, 80. seviyenin yavaş bir stokastik çizgi ile yukarıdan aşağıya geçişi
İlk olarak, açık olun:
Lütfen, oluşturulan Expert Advisor'da OnTick işlevindeki konumla ilgili bilgilere nasıl erişeceğimi söyleyin. Açık olsun ya da olmasın. Konum için işaretçiyi nereden alabilirim? Yoksa başka bir şekilde mi yapılmalı?
Kim tarafından tasarlanan uzman?
Kodu göster lütfen.Kim tarafından tasarlanan uzman?
Kodu göster lütfen.*** ve sadece ticaret için kapalı ***
belirsiz.
VHS :
***а закрывал уже только по трейдингу ***
Vladimir Karputov :
belirsiz.
Klavyede "D" ve "L" yan yana. Yanlış.
Klavyede "D" ve "L" yan yana. Yanlış.
Evet, Artyom, çok teşekkür ederim. Görünüşe göre otomatik düzeltme (veya çarpık eller). Hem özel sınıf hem de kapanış ticaret değil, takip ediyor.
Her şeyi çok daha kolay yapabileceğinizi düşünüyorum - danışmanda KAPAT eşiğini 100'e ayarlayın ve sinyalin ağırlığını 0,5 verin - bu nedenle 0,5 ağırlıklı bir sinyal ASLA 100 eşiğini aşamaz