النتائج 1 إلى 3 من 3
- 03-06-2023, 11:50 AM #1
هل يوجد كود ستوب لوز لجميع الصفقات على النسبة المؤوية
السلام عليكم ورحمة الله
أبحث عن كود يقوم بوضع ستوب لوز لجميع الصفات المفتوحة حين يحقق الاكسبيرت نسبة 3% من الربح ومن هنا اذا تحرك السعر في صالح النتيجة يتحرك هذا الستوب معه triling stop
شكرا
- 03-06-2023, 12:52 PM #2
للاشاره الاكسبيرت يفتح نوع واحد من الصفقات بيع او شراء اي يغلق في حالة ظهور انعكاس اشاره
هذا كود من شات جبتي لكن لا اعلم اين المشكل
كود PHP:// Parcourir toutes les positions ouvertes
for (int i = 0; i < OrdersTotal(); i++)
{
// Sélectionner la position i
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
// Vérifier si la position est un achat (OP_BUY) ou une vente (OP_SELL)
if (OrderType() == OP_BUY)
{
// Calculer le prix d'entrée de la position
double entryPrice = OrderOpenPrice();
// Calculer le prix de stop loss à 3% en dessous du prix d'entrée
double stopLossPrice = entryPrice * 0.97;
// Placer un ordre de vente avec le prix de stop loss
OrderSend(Symbol(), OP_SELL, OrderLots(), stopLossPrice, 0, 0, 0, "Stop Loss", MagicNumber);
}
else if (OrderType() == OP_SELL)
{
// Calculer le prix d'entrée de la position
double entryPrice = OrderOpenPrice();
// Calculer le prix de stop loss à 3% au-dessus du prix d'entrée
double stopLossPrice = entryPrice * 1.03;
// Placer un ordre d'achat avec le prix de stop loss
OrderSend(Symbol(), OP_BUY, OrderLots(), stopLossPrice, 0, 0, 0, "Stop Loss", MagicNumber);
}
}
}
- 03-06-2023, 02:04 PM #3
اخر كود محسن
كود PHP:// Calculer le gain total des positions ouvertes
double totalProfit = 0.0;
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
double profit = OrderProfit();
totalProfit += profit;
}
}
// Vérifier si le gain total atteint 3%
if (totalProfit >= AccountBalance() * 0.03)
{
// Modifier le stop loss de chaque position ouverte
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
double entryPricePosition = OrderOpenPrice();
// Calculer le nouveau prix de stop loss à 3% en dessous du prix d'entrée
double newStopLossPrice = entryPricePosition * 0.97;
// Modifier le stop loss de la position uniquement si elle est sélectionnée correctement
if (OrderModify(OrderTicket(), OrderOpenPrice(), newStopLossPrice, OrderTakeProfit(), 0, clrNONE))
{
Print("Stop loss modifié pour l'ordre ", OrderTicket());
}
else
{
Print("Erreur lors de la modification de l'ordre ", OrderTicket(), ", code d'erreur : ", GetLastError());
}
}
}
}