KARAUL ! !! AIDE. Il reste 4 heures et 45 minutes ! !!

 

Quelqu'un peut-il m'aider ? Je ne sais pas où se trouve l'erreur.

code :

//+------------------------------------------------------------------+
//| Cempionat2012.mq5 |
//| Victor Pavlyuk |
//| |
//+------------------------------------------------------------------+
#property copyright "Victor Pavljuk"
#property version "1.03"

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

bool cantrade=true ;
double demande ;
double enchère ;
int OpenLong(double volume=5,
int slippage=10000,
chaîne commentaire="",
int magic=888)
{
MqlTradeRequest my_trade ;
MqlTradeResult mon_trade_result ;

mon_trade.action=TRADE_ACTION_DEAL ;
mon_marché.symbole=Symbole() ;
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) ;
mon_trade.deviation=slippage ;
mon_trade.type=ORDER_TYPE_BUY ;
mon_trade.type_filling=ORDER_FILLING_RETURN ;
mon_trade.comment=comment ;
mon_trade.magic=magique ;

ResetLastError() ;

if(OrderSend(my_trade,my_trade_result))
{
Print("code de résultat de la transaction - ",mon_trade_result.retcode)
}
sinon
{
Print("Code de résultat de l'opération - ",my_trade_result.retcode) ;
Print("Erreur d'ouverture de commande = ",GetLastError()) ;
}
retour(0) ;
}
int OpenShort(double volume=5,
int slippage=10000,
chaîne commentaire="",
int magic=888)
{
MqlTradeRequest my_trade ;
MqlTradeResult mon_trade_result ;

mon_trade.action=TRADE_ACTION_DEAL ;
mon_marché.symbole=Symbole() ;
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) ;
mon_trade.deviation=slippage ;
mon_trade.type=ORDER_TYPE_SELL ;
mon_trade.type_filling=ORDER_FILLING_RETURN ;
mon_trade.comment=comment ;
mon_trade.magic=magique ;

ResetLastError() ;

if(OrderSend(my_trade,my_trade_result))
{
Print("code de résultat de la transaction - ",mon_trade_result.retcode)
}
sinon
{
Print("Code de résultat de l'opération - ",my_trade_result.retcode) ;
Print("Erreur d'ouverture de commande = ",GetLastError()) ;
}
retour(0) ;
}
int OnInit()
{
retour(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) ;

si(t1>=t2)len=t1+1 ;
sinon len=t2+1 ;

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

si(((mqldt.hour)>TradeTime))

if(!PositionSelect(_Symbol))// s'il n'y a pas encore de position ouverte
{
si((mqldt.hour==TradeTime) && (cantrade))
{
if(Open[t1]>(Open[t2]+delta*_Point))
{
OpenShort(lot,10,",888) ;
cantrade=false ;
retour ;

}

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

}
}
retour ;
}
//+------------------------------------------------------------------+

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

La structure MqlTradeRequest doit être effacée avant de l'utiliser.

Lire la suite

 
GGG, je me demande combien de personnes ont une phrase dans leur tête qui résonne avec le sujet de ce fil. :)
 
//+------------------------------------------------------------------+
//| 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;
}
//+------------------------------------------------------------------+
Pour commencer, juste pour être clair
 

Je pense que c'est un code pour demander pourquoi TP et SL sont égaux à Asku.

Sauf que l'auteur est différent.

IMHO.

 

peut retirer la structure de la fonction :

ou le glissement est trop important, pourquoi le dire comme ça ?

et pourquoi y a-t-il une paire de supports supplémentaire ?

si(((mqldt.hour)>TradeTime))

 

Il est possible de réécrire la fonction d'ouverture par type :

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:

Il est possible de réécrire la fonction d'ouverture par type :

alors précisez au moins de quelles bibliothèques proviennent les fonctions.

 

Pendant le test, je vois des messages dans le journal.

2012.09.21 20:07:11 Core 1 2012.09.18 13:00:00 failed instant sell 5.00 EURUSD at 1.30657 sl : 1.29657 tp : 1.31195 [Invalid request] (demande non valide)

 
pavivas:

Pendant le test, je vois des messages dans le journal.

2012.09.21 20:07:11 Core 1 2012.09.18 13:00:00 failed instant sell 5.00 EURUSD at 1.30657 sl : 1.29657 tp : 1.31195 [Invalid request] (demande non valide)

c'est là que vous auriez dû commencer.
 
Vladon:

alors précisez au moins de quelles bibliothèques proviennent les fonctions.

#include <Trade\Trade.mqh>

Au fait, il se trouve par défaut dans le dossier du terminal, n'est-ce pas ? Elle ne doit pas être attachée à l'EA sur le chump ?

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