Rustam Ayupov ticaret terminalindeki takip eden stop kayıplarımın gereksiz yönetimi beni şaşırttı. Takip eden stop ayarı ile manuel olarak işlem yapıyorum ve MetaQuotes ticaret terminali ile tanıştığımda, demo hesabında, diğer brokerlerle uzun süredir çalışılan ticaret sistemim, işlemleri bağımsız olarak kapatmaya başladı.... hepsi rastgele sırayla, düzenlilik yok. Ticaret sunucusu yavaşladığında, teklif atlamalarını hayal ederek parametrelerin üzerinden çoktan geçtim. Pusuda beklemek, takip eden stoploss'un böyle planlanmamış bir kapanışını beklemek de işe yaramıyor, canavar benden daha kurnazdı) Daha deneyimli tüccarlardan biri, bu tanıdık geliyorsa, lütfen aydınlatın? Ya da ne olabileceğini önerin? MT5 ile çok fazla broker yok ve sistemin kendisi MT4 ile karşılaştırılamaz, MT5 ticaret terminalinde ve bu brokerde ustalaşmak istiyorum. TEŞEKKÜRLER .
3. DLL'yi yasaklayın ve anlamadığınız tüm göstergeleri ve danışmanları kaldırın.
2. Kişisel dolap DC'de, tüm gruplardan, sinyallerden, danışmanlardan ve benzer her şeyden bağlantıyı kesin.
Bir CButton nesnesi için OnSetColorBackground kullanmanın doğru yolu nedir? Koşullara bağlı olarak OnTick'ten düğmeyi renklendirmem gerekiyor. Düğmeye tıklanması beklenmiyor.
"Renklendirme" fonksiyonunu şu şekilde bildiriyorum ve kullanıyorum:
Zarar durdurmayı değiştirme komut dosyasının neden çalışmadığını ve 4756 hatası verdiğini söyleyebilir misiniz?
Aynı zamanda, kar alma işlemini değiştirmek için aynı komut dosyası iyi çalışıyor.
Kılavuzda bu konuyla ilgili iyi bir örnek bulunmaktadır
request.action =TRADE_ACTION_SLTP; // тип торговой операции
request.position=position_ticket; // тикет позиции
request.symbol=position_symbol; // символ
request.sl =sl; // Stop Loss позиции
request.tp =tp; // Take Profit позиции
request.magic=EXPERT_MAGIC; // MagicNumber позиции
Bir ticaret talebinin yapısı
SL & TP Değişikliği
StopLoss ve/veya TakeProfit seviyelerinin değiştirilmesi için işlem emri. 4 alanın belirtilmesini gerektirir:
eylem
sembolü
sl
tp
pozisyon
Riskten korunma sisteminde bir pozisyonu değiştirirken veya kapatırken, biletini (MqlTradeRequest::position) belirttiğinizden emin olun. Netleştirme sisteminde bilet de belirtilebilir, ancak pozisyon sembol adıyla tanımlanır.
Структура торгового запроса - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
El kitabında bu konuyla ilgili güzel bir örnek var
Bir hedging sisteminde bir pozisyonu değiştirirken veya kapatırken, biletini (MqlTradeRequest::position) belirttiğinizden emin olun. Netleştirme sisteminde, bilet de belirtilebilir, ancak pozisyon sembol adıyla tanımlanır.
//+------------------------------------------------------------------+//| Modify SL TP.mq5 |//| |//+------------------------------------------------------------------+#property description"Скрипт"#property script_show_inputsinputint Magic_Number = 0;
inputdouble Price_of_New_Take_Profit = 0.0;
inputdouble Price_of_New_Stop_Loss = 0.0;
//--------------------------------------------------------------------//--- объявление запроса и результата//MqlTick tick;MqlTradeRequest request;
MqlTradeResult result;
//MqlTradeCheckResult check;//MqlDateTime tm;//--------------------------------------------------------------------voidOnStart()
{
// double Position_SL,Position_TP;// ulong Position_Magic = 0;//--- перебор всех открытых позицийfor(int i=0; i<PositionsTotal(); i++)
{
if(_Symbol == PositionGetSymbol(i))
{
//--- параметры ордераulong Position_Ticket = PositionGetTicket(i);// тикет позицииstring Position_Symbol = PositionGetString(POSITION_SYMBOL); // символ int Symbol_Digits = (int)SymbolInfoInteger(Position_Symbol,SYMBOL_DIGITS); // количество знаков после запятойulong Position_Magic = PositionGetInteger(POSITION_MAGIC); // MagicNumber позицииdouble Position_Volume = PositionGetDouble(POSITION_VOLUME); // объем позицииdouble Position_SL = PositionGetDouble(POSITION_SL); // Stop Loss позицииdouble Position_TP = PositionGetDouble(POSITION_TP); // Take Profit позицииENUM_POSITION_TYPE Position_Type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); // тип позици if(Position_Magic == Magic_Number)
{
if (Position_SL != Price_of_New_Stop_Loss || Position_TP != Price_of_New_Take_Profit)
{
//--- обнуление значений запроса и результатаZeroMemory(request);
ZeroMemory(result);
//--- установка параметров операции
request.action = TRADE_ACTION_SLTP; // тип торговой операции
request.position = Position_Ticket; // тикет позиции
request.symbol = Position_Symbol; // символ
request.sl = NormalizeDouble(Price_of_New_Stop_Loss,_Digits); // Stop Loss позиции
request.tp = NormalizeDouble(Price_of_New_Take_Profit,_Digits); // Take Profit позиции
request.magic = Position_Magic; // MagicNumber позиции//--- вывод информации о модификацииPrint(TimeToString(TimeCurrent()), " Modify ", request.position,
" with Position_Magic ", IntegerToString(Position_Magic));
Print(" SL ", DoubleToString(Position_SL,_Digits), " -> ", DoubleToString(request.sl,_Digits),
"; TP ", DoubleToString(Position_TP,_Digits), " -> ", request.tp);
//--- отправка запроса и вывод информации об ошибке, если отправить запрос не удалосьif(!OrderSend(request,result)) PrintFormat("OrderSend error %d",GetLastError());
//--- информация об операции PrintFormat("retcode=%u deal=%I64u order=%I64u", result.retcode, result.deal, result.order);
}
}
}
}
//--- Цикл, пока скрипт не будет прерванwhile(!IsStopped()) Comment("Сделано");
Comment("");
}
// End OnStart()//+------------------------------------------------------------------+
Kar almak iyi değişir. Ancak zararı durdurma değerini açıkça ayarlanmış bir değerle değiştirmeye çalışırken, 4756 hatası üretilir ve günlükte şu şekildedir:
Kar almak mükemmel şekilde değişir. Ancak zararı durdurma değerini açıkça ayarlanmış bir değerle değiştirmeye çalışırken, 4756 hatası üretilir ve günlükte şu şekildedir:
Sergey Gridnev #: Pozisyonun hangi fiyattan açıldığı önemli değildir, önemli olan stop modifikasyonu anındaki fiyattır. Bir satış pozisyonu için bu, Satış fiyatıdır.
Bu forex, mevcut fiyat sürekli değişiyor, ancak açıkça yerleştirilen duraktan çok uzakta.
3. DLL'yi yasaklayın ve anlamadığınız tüm göstergeleri ve danışmanları kaldırın.
2. Kişisel dolap DC'de, tüm gruplardan, sinyallerden, danışmanlardan ve benzer her şeyden bağlantıyı kesin.
1. İşlem hesabı şifrelerinizi değiştirin
Bir CButton nesnesi için OnSetColorBackground kullanmanın doğru yolu nedir? Koşullara bağlı olarak OnTick'ten düğmeyi renklendirmem gerekiyor. Düğmeye tıklanması beklenmiyor.
"Renklendirme" fonksiyonunu şu şekilde bildiriyorum ve kullanıyorum:
Bunun kodda uygulandığı bir örnek var mı? Kütüphanede bulamadım.
Merhaba!
Zararı durdurma komut dosyasının neden çalışmadığını ve 4756 hatası verdiğini söyleyebilir misiniz?
Aynı zamanda, kar alma işlemini değiştirmek için aynı komut dosyası iyi çalışıyor.
Merhaba!
Zarar durdurmayı değiştirme komut dosyasının neden çalışmadığını ve 4756 hatası verdiğini söyleyebilir misiniz?
Aynı zamanda, kar alma işlemini değiştirmek için aynı komut dosyası iyi çalışıyor.
Kılavuzda bu konuyla ilgili iyi bir örnek bulunmaktadır
Bir ticaret talebinin yapısı
SL & TP Değişikliği
StopLoss ve/veya TakeProfit seviyelerinin değiştirilmesi için işlem emri. 4 alanın belirtilmesini gerektirir:
Riskten korunma sisteminde bir pozisyonu değiştirirken veya kapatırken, biletini (MqlTradeRequest::position) belirttiğinizden emin olun. Netleştirme sisteminde bilet de belirtilebilir, ancak pozisyon sembol adıyla tanımlanır.
https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
El kitabında bu konuyla ilgili güzel bir örnek var
Bir hedging sisteminde bir pozisyonu değiştirirken veya kapatırken, biletini (MqlTradeRequest::position) belirttiğinizden emin olun. Netleştirme sisteminde, bilet de belirtilebilir, ancak pozisyon sembol adıyla tanımlanır.
https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
Cevap için teşekkürler!
Senaryoyu bu şekilde yeniden düzenledim:
Kar almak iyi değişir. Ancak zararı durdurma değerini açıkça ayarlanmış bir değerle değiştirmeye çalışırken, 4756 hatası üretilir ve günlükte şu şekildedir:
Kar almak mükemmel şekilde değişir. Ancak zararı durdurma değerini açıkça ayarlanmış bir değerle değiştirmeye çalışırken, 4756 hatası üretilir ve günlükte şu şekildedir:
Şu anda Ask fiyatı neye eşittir?
Pozisyon 0,85098 fiyatından açılmıştır. Aynı hikaye diğer çiftler için ve stopa farklı mesafeler için de geçerlidir.
Pozisyonun hangi fiyattan açıldığı önemli değildir, önemli olan stop modifikasyonu anındaki fiyattır. Bir satış pozisyonu için bu, Satış fiyatıdır.