KORUMA!!! YARDIM. 4 saat 45 dakika kaldı!

 

Kim yardımcı olabilir. Hatanın nerede olduğunu bilmiyorum. testi geçemez.

kod:

//+------------------------------------------- --------------------+
//| Cempionat2012.mq5 |
//| Victor Pavlyuk |
//| |
//+------------------------------------------- --------------------+
# mülkiyet telif hakkı "Victor Pavljuk"
#özellik sürümü "1.03"

girdi int TakeProfit=538;
giriş int StopLoss=1000;
giriş int TradeTime=13;
giriş int t1=7;
giriş int t2=1;
girdi int delta=70;
çift lot=5 girin;

bool cantrade=true;
çift Sor;
çift teklif;
int OpenLong(çift hacim=5,
int kayma=10000,
dize yorumu = "",
int büyü=888)
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(hacim,1);
my_trade.price=NormalizeDouble(Sor,_Rakamlar);
my_trade.sl=NormalizeDouble(Ask-StopLoss*_Point,_Digits);
my_trade.tp=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_BUY;
my_trade.type_filling=ORDER_FILLING_RETURN;
my_trade.comment=yorum;
my_trade.magic=sihir;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("İşlem sonuç kodu - ",my_trade_result.retcode);
}
başka
{
Print("İşlem sonuç kodu - ",my_trade_result.retcode);
Print("Sıra açma hatası = ",GetLastError());
}
dönüş(0);
}
int OpenShort(çift hacim=5,
int kayma=10000,
dize yorumu = "",
int büyü=888)
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action=TRADE_ACTION_DEAL;
my_trade.symbol=Symbol();
my_trade.volume=NormalizeDouble(hacim,1);
my_trade.price=NormalizeDouble(Sor,_Rakamlar);
my_trade.sl=NormalizeDouble(Ask-StopLoss*_Point,_Digits);
my_trade.tp=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
my_trade.deviation=slippage;
my_trade.type=ORDER_TYPE_SELL;
my_trade.type_filling=ORDER_FILLING_RETURN;
my_trade.comment=yorum;
my_trade.magic=sihir;

ResetLastError();

if(OrderSend(my_trade,my_trade_result))
{
Print("İşlem sonuç kodu - ",my_trade_result.retcode);
}
başka
{
Print("İşlem sonuç kodu - ",my_trade_result.retcode);
Print("Sıra açma hatası = ",GetLastError());
}
dönüş(0);
}
int OnInit()
{
dönüş(0);
}
geçersiz OnDeinit(const int nedeni){}
geçersiz OnTick()
{
çift Açık[];
MqlDateTime mqldt;
ZamanAkımı(mqldt);
iç;
MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
Sor=last_tick.ask;
Teklif=last_tick.bid;

ArraySetAsSeries(Açık,doğru);

if(t1>=t2)len=t1+1;
başka len=t2+1;

CopyOpen(_Symbol,PERIOD_M30,0,len,Açık);

if(((mqldt.hour)>TradeTime)) cantrade=true;

if(!PositionSelect(_Symbol))// Henüz açık pozisyon yoksa
{
if((mqldt.hour==TradeTime) && (cantrade))
{
if(Aç[t1]>(Aç[t2]+delta*_Nokta))
{
OpenShort(lot,10,"",888);
cantrade=yanlış;
dönüş;

}

if((Açık[t1]+delta*_Nokta)<Açık[t2])
{
OpenLong(lot,10,"",888);
cantrade=yanlış;
dönüş;
}

}
}
dönüş;
}
//+------------------------------------------- --------------------+

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
Dosyalar:
 

MqlTradeRequest yapısı kullanılmadan önce sıfıra ayarlanmalıdır.

Daha

 
YYY, acaba kaç kişinin kafasında bu başlığın konusu ile uyumlu bir cümle var merak ediyorum. :)
 
//+------------------------------------------------------------------+
//| Cempionat2012.mq5 |
//| Victor Pavlyuk |
//| |
//+------------------------------------------------------------------+
#property copyright "Victor Pavljuk"
#property version "1.03"

input int TakeProfit= 538 ;
input int StopLoss= 1000 ;
input int TradeTime= 13 ;
input int t1= 7 ;
input int t2= 1 ;
input int delta= 70 ;
input double lot= 5 ;

bool cantrade= true ; 
double Ask; 
double Bid; 
int OpenLong( double volume= 5 ,
int slippage= 10000 ,
string comment= "" ,
int magic= 888 )
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action= TRADE_ACTION_DEAL ;
my_trade.symbol= Symbol ();
my_trade.volume= NormalizeDouble (volume, 1 );
my_trade.price= NormalizeDouble (Ask, _Digits );
my_trade.sl= NormalizeDouble (Ask-StopLoss* _Point , _Digits );
my_trade.tp= NormalizeDouble (Ask+TakeProfit* _Point , _Digits );
my_trade.deviation=slippage;
my_trade.type= ORDER_TYPE_BUY ;
my_trade.type_filling= ORDER_FILLING_RETURN ;
my_trade.comment=comment;
my_trade.magic=magic;

ResetLastError ();

if ( OrderSend (my_trade,my_trade_result))
{
Print ( "Код результата операции - " ,my_trade_result.retcode);
}
else
{
Print ( "Код результата операции - " ,my_trade_result.retcode);
Print ( "Ошибка открытия ордера = " , GetLastError ());
}
return ( 0 );
}
int OpenShort( double volume= 5 ,
int slippage= 10000 ,
string comment= "" ,
int magic= 888 )
{
MqlTradeRequest my_trade;
MqlTradeResult my_trade_result;

my_trade.action= TRADE_ACTION_DEAL ;
my_trade.symbol= Symbol ();
my_trade.volume= NormalizeDouble (volume, 1 );
my_trade.price= NormalizeDouble (Ask, _Digits );
my_trade.sl= NormalizeDouble (Ask-StopLoss* _Point , _Digits );
my_trade.tp= NormalizeDouble (Ask+TakeProfit* _Point , _Digits );
my_trade.deviation=slippage;
my_trade.type= ORDER_TYPE_SELL ;
my_trade.type_filling= ORDER_FILLING_RETURN ;
my_trade.comment=comment;
my_trade.magic=magic;

ResetLastError ();

if ( OrderSend (my_trade,my_trade_result))
{
Print ( "Код результата операции - " ,my_trade_result.retcode);
}
else
{
Print ( "Код результата операции - " ,my_trade_result.retcode);
Print ( "Ошибка открытия ордера = " , GetLastError ());
}
return ( 0 );
}
int OnInit ()
{
return ( 0 );
}
void OnDeinit ( const int reason){}
void OnTick ()
{
double Open[];
MqlDateTime mqldt;
TimeCurrent (mqldt);
int len;
MqlTick last_tick;
SymbolInfoTick ( _Symbol ,last_tick);
Ask=last_tick.ask;
Bid=last_tick.bid;

ArraySetAsSeries (Open, true );

if (t1>=t2)len=t1+ 1 ;
else len=t2+ 1 ;

CopyOpen ( _Symbol , PERIOD_M30 , 0 ,len,Open);

if (((mqldt.hour)>TradeTime)) cantrade= true ;

if (! PositionSelect ( _Symbol )) // Если еще нет открытой позиции
{
if ((mqldt.hour==TradeTime) && (cantrade))
{
if (Open[t1]>(Open[t2]+delta* _Point ))
{
OpenShort(lot, 10 , "" , 888 );
cantrade= false ;
return ;

}

if ((Open[t1]+delta* _Point )<Open[t2])
{
OpenLong(lot, 10 , "" , 888 );
cantrade= false ;
return ;
}

}
}
return ;
}
//+------------------------------------------------------------------+
Başlamak için, daha net hale getirmek için
 

bence bu, TP ve SL'nin neden Sor'a eşit olduğu sorusunu içeren bir koddur.

sadece başka bir yazar var.

BENİM NACİZANE FİKRİME GÖRE.

 

bir yapıyı bir fonksiyonun dışına taşıyabilir:

ya da kayma çok büyük, neden böyle koydunuz?

Neden fazladan bir çift parantez var?

if(((mqldt.hour)>Ticaret Zamanı))

 

Açık işlevi aşağıdaki türe göre yeniden yazabilirsiniz:

 void PosOpen( int trade, string symbol)
  { if (trade== 0 )
   return ;
   
   double Price;
   ENUM_ORDER_TYPE Type;
   
   if (trade== 1 )
    {Type= ORDER_TYPE_BUY ;
     Price= SymbolInfoDouble (symbol, SYMBOL_ASK );}
   else 
    {Type = ORDER_TYPE_SELL ;
     Price= SymbolInfoDouble (symbol, SYMBOL_BID );}
     
   mytrade.PositionOpen(symbol,Type,Lot,Price, 0 , 0 , "Open" );    
 return ;
 }    
 
Heroix :

Açık işlevi aşağıdaki türe göre yeniden yazabilirsiniz:

o zaman en azından fonksiyonların hangi kütüphanelerden alındığını belirtin.

 

Test sırasında günlükte mesajlar üretir.

2012.09.21 20:07:11 Çekirdek 1 2012.09.18 13:00:00 1.30657 sl'de 5.00 EURUSD anında satış başarısız oldu: 1.29657 tp: 1.31195 [Geçersiz istek]

 
pavivas :

Test sırasında günlükte mesajlar üretir.

2012.09.21 20:07:11 Çekirdek 1 2012.09.18 13:00:00 1.30657 sl'de 5.00 EURUSD anında satış başarısız oldu: 1.29657 tp: 1.31195 [Geçersiz istek]

işte başlamalıydı.
 
Vladon :

o zaman en azından fonksiyonların hangi kütüphanelerden alındığını belirtin.

#include <Ticaret\Ticaret.mqh>

Bu arada, varsayılan olarak terminal klasöründe mi? Şampiyon danışmanına uygulanması gerekmiyor muydu?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5