Makar bir soru daha, SİZİN için resimleri atacağım, ama hiçbir şeyi yeniden yazmanıza gerek yok, SİZİN DENEYİMİNİZ SİZİN ilginizi çekiyor, bununla karşılaştınız mı?
Minimum emirler kapalıysa ve emirler tablosunda hala emirler varsa, eski ortalama fiyat doğru değilse, yeni bir maksimum emir açılırsa emirlerde değişiklik meydana gelirse durum aşağıdaki gibidir.
if (CountTrade() < MaxOrders)
{
int order_type = FindLastOrderType();
if (order_type == OP_BUY)
{
price = FindLastOrderPrice(OP_BUY);
if (Ask<= price - Step()* Point )
{
lastlot = NormalizeDouble (GetMinLotOrder()* MathPow ( MultiplierParameter, OrdersTotal ()), 2 );
ticket = OrderSend ( Symbol (), OP_BUY, lastlot, Ask, slip, 0 , 0 , "Групповой ордер" , Magic, 0 , Blue);
if (ticket < 1 )
Print ( "Ошибка ордера на покупку" );
ModifyOrders(OP_BUY);
}
}
if (order_type == OP_SELL)
{
price = FindLastOrderPrice(OP_SELL);
if (Bid>= price + Step()* Point )
{
lastlot = NormalizeDouble (GetMinLotOrder()* MathPow ( MultiplierParameter, OrdersTotal ()), 2 );
ticket = OrderSend ( Symbol (), OP_SELL, lastlot, Bid, slip, 0 , 0 , "Групповой ордер" , Magic, 0 , Red);
if (ticket < 1 )
Print ( "Ошибка ордера на продажу!" );
ModifyOrders(OP_SELL);
}
Ve eğer fiyat eski ortalama fiyata giderse ve siparişler tablosu bunun üzerine kapanırsa, o zaman bir kayıp yaşarız. Değişikliği bir yerde daha vidalamak zorunda kaldım
//+----------------------------------------------------------------------------+//| Закрытие минимального и максимального ордеров |//+----------------------------------------------------------------------------+void ClosseMinMaxOrders()
{
int slipp = ( int ) MarketInfo( _Symbol , MODE_SPREAD )* 2 ;
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
{
if (CalculiteProfit() > 0 && Drawdown > DrawdownClosingMinMaxOrders)
(OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Bid, slipp) && OrderClose(GetTicketMaxOrder(), FindLastLots(), Bid, slipp));
// Print("Максимальный и минимальный ордера на покупку успешно закрыты!");elsePrint ( "Не удалось закрыть максимальный и минимальный ордера на покупку!" , GetLastError ());
ModifyOrders(OP_BUY);
}
if (OrderType() == OP_SELL)
{
if (CalculiteProfit() > 0 && Drawdown > DrawdownClosingMinMaxOrders)
(OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Ask, slipp) && OrderClose(GetTicketMaxOrder(), FindLastLots(), Ask, slipp));
// Print("Максимальный и минимальный ордера на продажу успешно закрыты!");elsePrint ( "Не удалось закрыть максимальный и минимальный ордера на продажу!" , GetLastError ());
ModifyOrders(OP_SELL);
}
}
}
}
}
İşte değişiklik fonksiyonunun kendisi
//+----------------------------------------------------------------------------+//| Модификация групповых ордеров |//+----------------------------------------------------------------------------+void ModifyOrders( int otype)
{
double avg_price, order_lots = 0 ;
price = 0 ;
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic && OrderType() == otype)
{
price += OrderOpenPrice() * OrderLots();
order_lots += OrderLots() ;
}
}
}
avg_price = NormalizeDouble (price / order_lots, Digits );
{
ObjectDelete ( 0 , "AveragePriceLine" );
ObjectCreate ( 0 , "AveragePriceLine" , OBJ_HLINE , 0 , 0 , avg_price);
ObjectSet( "AveragePriceLine" , OBJPROP_COLOR , Magenta);
}
if (otype == OP_BUY) tp = NormalizeDouble (avg_price + TakeProfitGroupOrder* Point , Digits );
if (otype == OP_SELL) tp = NormalizeDouble (avg_price - TakeProfitGroupOrder* Point , Digits );
for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic && OrderType() == otype)
{
if (OrderModify(OrderTicket(), OrderOpenPrice(), 0 , tp, 0 ))
Print ( "Ордера успешно модифицированы!" );
elsePrint ( "Ошибка модификации ордеров!" );
}
}
}
}
Soru, günlükteki hataların ne kadar kritik olduğudur.
hiçbirşey değişmedi
Herşeyi değiştir...
hiçbirşey değişmedi
Ya da öyle...
Sana başka bir fonksiyon verdim ... bir şey eklemene gerek yok
Ya da taşıyabilirsiniz...
Seçilen silinebilir
Seçilen silinebilir
Makar nedenini açıklayabilir misin
Makar nedenini açıklayabilir misin
Seçilen silinebilir
Makar bir soru daha, SİZİN için resimleri atacağım, ama hiçbir şeyi yeniden yazmanıza gerek yok, SİZİN DENEYİMİNİZ SİZİN ilginizi çekiyor, bununla karşılaştınız mı?
Minimum emirler kapalıysa ve emirler tablosunda hala emirler varsa, eski ortalama fiyat doğru değilse, yeni bir maksimum emir açılırsa emirlerde değişiklik meydana gelirse durum aşağıdaki gibidir.
Ve eğer fiyat eski ortalama fiyata giderse ve siparişler tablosu bunun üzerine kapanırsa, o zaman bir kayıp yaşarız. Değişikliği bir yerde daha vidalamak zorunda kaldım
İşte değişiklik fonksiyonunun kendisi
Soru, günlükteki hataların ne kadar kritik olduğudur.
"slipp" boyutu, herhangi bir yöndeki bir sırayı silmenize izin verir ... asıl şey, biletin eşleşmesidir
Alış veya Teklif fiyatında, önemli değil
Alış veya Teklif fiyatında, önemli değil
önemli değil
Soru, günlükteki hataların ne kadar kritik olduğudur.
Kritik değil, ama her şeyin bir açıklaması var ...