Merhaba sevgili programcılar. Benim için programcılar tanrılar gibidir - hiç yoktan, yoktan var eden, çalışan ve hatta maddi şeyler yaratan bir şey yaratmak - sadece harika ... Zaman hakkında bir makale okudum. ama periyodikliği, hatta periyodikliği bile değil, bir danışman için doğru zaman dilimlerinde açıp kapama hakkında hiçbir şey söylemez. Belki birileri bu konuyu sormuştur. Şimdilik, danışmanı her biri kendi zamanında başlayacak ve kapanacak şekilde yeniden adlandırmalısınız, ancak MT5'te yalnızca bir çift - bir danışman olduğundan, kolları değiştirmeniz gerekir. ve zaman çizelgesi gibi bir şey ortaya çıkacaktı ... Teşekkürler
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
İzler Sadece burada doğru zamanda açma ve kapama sıklığını ortaya koyuyorum, üretmiyorlar ve geri dönüşü hesaba katmıyorlar. Pekala, fikir şudur: takip eden bir yolculuktan sonra, genellikle bir periyodun sonunda, örneğin bir saat veya 15 dakika, birkaç dakika bekleyin ve tekrar açılmasına izin verin ve gösterge ile hizalamayı belirleyin ve devam edene kadar devam edin. bir sonraki gezi ... :-))))
Ne ekleyeceğimi bilmiyorum, çünkü açılış fiyatını alıyorum, ancak ortalamanın bir sonucu olarak fiyatın nereye taşınmasına ihtiyacım var. belki böyle bir işlev vardır.
Veya sadece siparişlerin tarihçesi aracılığıyla birinci ve ikinci siparişlerin fiyatını bulmak ve zaten bu verilere dayanarak ortalamaya göre, bu şekilde benim için çok karmaşık olmasını istemem!!!
datetime end= TimeCurrent (); // текущее серверное времяdatetime start=end- PeriodSeconds ( PERIOD_D1 ); // установим начало на сутки назад//--- запросим в кэш программы нужный интервал торговой историиHistorySelect (start,end);
//--- получим количество сделок в историиint deals= HistoryDealsTotal ();
//--- получим тикет сделки, имеющей последний индекс в спискеulong deal_ticket= HistoryDealGetTicket (deals- 1 );
if (deal_ticket> 0 ) // получили в кэш сделку, работаем с ней
{
//--- тикет ордера, на основании которого была проведена сделкаulong order = HistoryDealGetInteger (deal_ticket, DEAL_ORDER );
long order_magic= HistoryDealGetInteger (deal_ticket, DEAL_MAGIC );
long pos_ID = HistoryDealGetInteger (deal_ticket, DEAL_POSITION_ID );
double priceh = HistoryDealGetInteger (deal_ticket, DEAL_PRICE ); // не могу определить цену открытия
PrintFormat ( "Сделка #%d по ордеру #%d с ORDER_MAGIC=%d участвовала в позиции %d" ,
deals- 1 ,order,order_magic,pos_ID);
}
else// неудачная попытка получения сделки
{
PrintFormat ( "Всего в истории %d сделок, не удалось выбрать сделку" +
" с индексом %d. Ошибка %d" ,deals,deals- 1 , GetLastError ());
}
//--- получим общее количество позицийint positions= PositionsTotal ();
//--- пробежим по списку ордеровfor ( int i= 0 ;i<positions;i++)
{
ResetLastError ();
//--- скопируем в кэш позицию по ее номеру в спискеstring symbol= PositionGetSymbol (i); // попутно получим имя символа, по которому открыта позицияif (symbol!= "" ) // позицию скопировали в кэш, работаем с ней
{
long pos_id = PositionGetInteger ( POSITION_IDENTIFIER );
double price = PositionGetDouble ( POSITION_PRICE_OPEN );
ENUM_POSITION_TYPE type=( ENUM_POSITION_TYPE ) PositionGetInteger ( POSITION_TYPE );
long pos_magic = PositionGetInteger ( POSITION_MAGIC );
string comment = PositionGetString ( POSITION_COMMENT );
if (pos_magic==EA_Magic)
{
PositionModify( Symbol (), NormalizeDouble (( - StopLoss* _Point ), 4 ),
NormalizeDouble (( + TakeProfit* _Point ), 4 )); // ну здесь еще через запрос в зависимости от типа ордера
}
PrintFormat ( "Позиция #%d по %s: POSITION_MAGIC=%d, цена=%G, тип=%s, комментарий=%s" ,
pos_id,symbol,pos_magic,price, EnumToString (type),comment);
}
else// вызов PositionGetSymbol() завершился неудачно
{
PrintFormat ( "Ошибка при получении в кэш позиции c индексом %d." +
" Код ошибки: %d" , i, GetLastError ());
}
}
Sevgili yardım!!! Zaten eller bitmiş stratejiden son adıma düşüyor. Bir anlaşmanın ortalaması alınamıyor
Bir anlaşma yapmaya çalışıyorum. Ama ayarlarda
Ne ekleyeceğimi bilmiyorum, çünkü açılış fiyatını alıyorum, ancak ortalamanın bir sonucu olarak fiyatın nereye taşınmasına ihtiyacım var. belki böyle bir işlev vardır.
Veya sadece siparişlerin tarihçesi aracılığıyla birinci ve ikinci siparişlerin fiyatını bulmak ve zaten bu verilere dayanarak ortalamaya göre, bu şekilde benim için çok karmaşık olmasını istemem!!!
Kalemlerle başlamak için ortalama algoritmasını boyamanız gerekir. Bazı nedenlerden dolayı, şimdi negatif bir stop loss değeri gönderiyorsunuz, ancak gerçek bir stop loss fiyatı olmalıdır. Bu parametreleri ortalama algoritmanıza göre ayarlayın.
Önceden, değişken extern türündeydi, şimdi girildi, ancak zaten bir sabit, extern artık gösterge menüsünde görüntülenmiyor. Bu değerleri değiştirebilmek için daha önce olduğu gibi yapmak mümkün mü yoksa ek değişkenler mi oluşturmam gerekiyor?
Örneğin bir danışman var, duruma göre pozisyonların açıldığı veya kapatıldığı bir OnTick olayı var. EA, zaman çerçevesini ayarlayabileceğiniz strateji test cihazında test edilebilir. Nasıl ilişkili olduklarını anlamıyorum. Strateji test cihazında bir EA'yı test ederken her onay işaretine yanıt vermiyor mu? Yoksa sadece test cihazında belirtilen zaman dilimine mi tepki veriyor? umarım soru açıktır
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.
Lütfen bana strateji test cihazına neden zararı ve karı durdurmayı koymadığımı, sadece piyasa fiyatından bir pozisyon açtığımı söyler misiniz?
Açmak için CTrade (trade.Buy) kullanıyorum
(trade.PositionOpen) kullanarak açmaya çalıştım, aynı şey, demoda açılıp stop koyuyor, test cihazında stoplar 0, sorunun ne olabileceğini anlamıyorum.
Elle yapabileceğiniz açıktır, robotun sergilenmesi gerekir.
sipariş değiştirme işlevi nasıl oluşturulur?
https://www.mql5.com/ru/articles/134
Merhaba! Söyleyin lütfen, danışman için bir fark var mı: minimum depozito 1000 & (dolar hesabı) mı yoksa 1000 ruble (ruble hesabı) mı?
Sevgili yardım!!! Zaten eller bitmiş stratejiden son adıma düşüyor. Bir anlaşmanın ortalaması alınamıyor
Bir anlaşma yapmaya çalışıyorum. Ama ayarlarda
Ne ekleyeceğimi bilmiyorum, çünkü açılış fiyatını alıyorum, ancak ortalamanın bir sonucu olarak fiyatın nereye taşınmasına ihtiyacım var. belki böyle bir işlev vardır.
Veya sadece siparişlerin tarihçesi aracılığıyla birinci ve ikinci siparişlerin fiyatını bulmak ve zaten bu verilere dayanarak ortalamaya göre, bu şekilde benim için çok karmaşık olmasını istemem!!!
Sevgili yardım!!! Zaten eller bitmiş stratejiden son adıma düşüyor. Bir anlaşmanın ortalaması alınamıyor
Bir anlaşma yapmaya çalışıyorum. Ama ayarlarda
Ne ekleyeceğimi bilmiyorum, çünkü açılış fiyatını alıyorum, ancak ortalamanın bir sonucu olarak fiyatın nereye taşınmasına ihtiyacım var. belki böyle bir işlev vardır.
Veya sadece siparişlerin tarihçesi aracılığıyla birinci ve ikinci siparişlerin fiyatını bulmak ve zaten bu verilere dayanarak ortalamaya göre, bu şekilde benim için çok karmaşık olmasını istemem!!!
Merhaba, lütfen bir noktayı açıklığa kavuşturun.
Örneğin bir danışman var, duruma göre pozisyonların açıldığı veya kapatıldığı bir OnTick olayı var. EA, zaman çerçevesini ayarlayabileceğiniz strateji test cihazında test edilebilir. Nasıl ilişkili olduklarını anlamıyorum. Strateji test cihazında bir EA'yı test ederken her onay işaretine yanıt vermiyor mu? Yoksa sadece test cihazında belirtilen zaman dilimine mi tepki veriyor? umarım soru açıktır