Snajper007 satış emri açıldı, fonksiyon ortalama fiyatı verdi. Ama 3. sıra açıldığında fonksiyon hem eski değeri veriyor hem de yenisini veriyor (Dergideki baskıya baktım) ve sonuç olarak eskisi kalıyor. Neyi yanlış yaptı?
Lütfen mantığı geliştirmeye yardımcı olun. Kapanan emirler ile yenisinin açılması arasında saat cinsinden bir duraklama olması gerekir. Bir şey buldum. Ama çalışmıyor.
OrderCloseTime() > 0 && TimeCurrent () - OrderCloseTime() > FstOrderTimeHour* 3600// сигнал на открытие ордера
OrderCloseTime() == 0// сигнал на открытие первого ордера
где int FstOrderTimeHour = 1// пауза в часах
Lütfen mantığı geliştirmeye yardımcı olun. Kapanan emirler ile yenisinin açılması arasında saat cinsinden bir duraklama olması gerekir. Bir şey buldum. Ama çalışmıyor.
//--- input parametersinputint HourPause = 1 ; // Пауза в часах//--- global parametersdatetime pause;
//+------------------------------------------------------------------+
void OnTick()
{
pause=GetInfoLastPos( 3 )+(HourPause* 60 * 60 );
// выключаем торговлюif ( TimeCurrent ()<pause) return ;
.......
}
//+----------------------------------------------------------------------------+//| Функция возвращает по символу и магику MakarFX|//| 1 - размер лота последней закрытой позиции |//| 2 - размер профита с учетом комиссии и свопа последней закрытой позиции |//| 3 - время последней закрытой позиции |//+----------------------------------------------------------------------------+double GetInfoLastPos( int a= 1 )
{
datetime t= 0 ;
double result= 0 ,l= 0 ,p= 0 ,f= 0 ;
int i=OrdersHistoryTotal();
for ( int pos= 0 ; pos<i; pos++)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic )
{
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if (t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();}
}
}
}
}
if (a== 1 ) {result=l;} elseif (a== 2 ) {result=p;} elseif (a== 3 ) {result=( double )t;}
else {result= 0 ;}
return (result);
}
//+----------------------------------------------------------------------------+
bir sipariş açmadan önce, prev_ticket'teki mevcut max_ticket'i hatırlarsınız
İyi seyirler Makar, sondan bir önceki siparişin biletini belirlemenin bu yönteminin ciddi bir dezavantajı var. Bu yöntem, ızgaradaki maksimum sıra açıldığında çalışır ve bu olmazsa, sondan bir önceki sıra sonuncuya eşittir, resme bakın. Bir fonksiyon yazmaya çalışıyorum ama saçmalığın son bilete göre belirlendiği ortaya çıktı. Seçilen koşul çalışmak istemiyor.
//+----------------------------------------------------------------------------+//| Расчет тикета предпоследнего ордера в сетке |//+----------------------------------------------------------------------------+int GetTicketPenultimateOrder()
{
penultimate_ticket = 0 ;
{
for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)
{
if ( OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if (OrderTicket() > penultimate_ticket)
if (penultimate_ticket < GetTicketMaxOrder())
penultimate_ticket = OrderTicket();
}
}
}
}
}
return (penultimate_ticket);
}
İyi seyirler Makar, sondan bir önceki siparişin biletini belirlemenin bu yönteminin ciddi bir dezavantajı var. Bu yöntem, ızgaradaki maksimum sıra açıldığında çalışır ve bu olmazsa, sondan bir önceki sıra sonuncuya eşittir, resme bakın. Bir fonksiyon yazmaya çalışıyorum ama saçmalığın son bilete göre belirlendiği ortaya çıktı. Seçilen koşul çalışmak istemiyor.
İyi günler, göstergelere göre anlaşmaları açma filtresinin uygulanmasına kim yardımcı olabilir?
Lütfen mantığı geliştirmeye yardımcı olun. Kapanan emirler ile yenisinin açılması arasında saat cinsinden bir duraklama olması gerekir. Bir şey buldum. Ama çalışmıyor.
Lütfen mantığı geliştirmeye yardımcı olun. Kapanan emirler ile yenisinin açılması arasında saat cinsinden bir duraklama olması gerekir. Bir şey buldum. Ama çalışmıyor.
Sihirbaz gerekli değilse - sarı kahramanlık.
bir sipariş açmadan önce, prev_ticket'teki mevcut max_ticket'i hatırlarsınız
İyi seyirler Makar, sondan bir önceki siparişin biletini belirlemenin bu yönteminin ciddi bir dezavantajı var. Bu yöntem, ızgaradaki maksimum sıra açıldığında çalışır ve bu olmazsa, sondan bir önceki sıra sonuncuya eşittir, resme bakın. Bir fonksiyon yazmaya çalışıyorum ama saçmalığın son bilete göre belirlendiği ortaya çıktı. Seçilen koşul çalışmak istemiyor.
İyi seyirler Makar, sondan bir önceki siparişin biletini belirlemenin bu yönteminin ciddi bir dezavantajı var. Bu yöntem, ızgaradaki maksimum sıra açıldığında çalışır ve bu olmazsa, sondan bir önceki sıra sonuncuya eşittir, resme bakın. Bir fonksiyon yazmaya çalışıyorum ama saçmalığın son bilete göre belirlendiği ortaya çıktı. Seçilen koşul çalışmak istemiyor.
Sana çalışan bir kod verdim!
Bu kod ile yukarıda yazdığım her şey oluyor ve hatta resim ekliyorum.
Bu kod ile yukarıda yazdığım her şey oluyor ve hatta resim ekliyorum.