[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 593

 
chief2000:

Lorsque nous testons et optimisons, nous utilisons le plus souvent une paire de devises, nous obtenons un profit acceptable et un drawdown. Puis nous le répétons pour d'autres monnaies. Mais au final, un conseiller expert devra négocier toutes les devises qui nous intéressent à partir d'un seul compte de trading. Ils disent que le drawdown "total" attendu peut être meilleur que le drawdown obtenu pour chaque devise individuellement (j'ai vu cette opinion plusieurs fois quelque part). Mais cela peut être bien pire si plusieurs conseillers experts entrent dans une série de pertes en même temps.

Je suis également intéressé par l'expérience des traders sur ce sujet. Je vous propose un clip vidéo très intéressant de Seaboss.

http://taverno.livejournal.com/2010/04/10/ La gestion totale des actions dans Seaboss est mise en œuvre pour Omega, existe-t-il des mises en œuvre similaires pour MT ?

 
Bonsoir, chers membres du forum ! J'ai contacté dans l'après-midi, personne n'a répondu - j'ai besoin d'un indicateur qui affiche les lignes horaires verticales dans la fenêtre du terminal, il y en a sûrement un tout fait, conseillez-moi où l'obtenir ?
 
root:
Bonsoir, chers membres du forum ! Je les ai contactés dans la journée mais personne n'a réagi - J'ai besoin d'un indicateur qui affiche les lignes horaires verticales dans la fenêtre du terminal, il en existe sûrement un tout fait, pourriez-vous me dire où l'obtenir ?

Je ne sais pas où le trouver. La raison pour laquelle je n'ai pas entendu de réponse est probablement que c'est une chose simple d'écrire un tel indicateur et que personne n'en aura probablement besoin.
 

vik-777:

Aidez-moi à résoudre ce problème

faire un échantillonnage de toutes les positions fermées

for (int i=0 ; i<OrdersHistoryTotal() ; i++)
si(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

après avoir filtré par numéro magique

si (OrderMagicNumber()==12)

le filtre correspond à 3 positions mais j'ai besoin que seule la dernière soit fermée par un nombre magique.

Je n'arrive pas à trouver comment laisser seulement le dernier ?

Merci.

Quelqu'un peut-il m'aider ? Personne ne l'a fait.
 
vik-777:
Quelqu'un peut-il m'aider ? Personne n'a rencontré ce problème ?

OrderCloseTime() pour vous aider.
 
Figar0:

OrderCloseTime() pour vous aider.
et alors ? je peux l'utiliser pour trouver le dernier ordre clôturé et j'ai besoin du dernier ordre clôturé avec un magicien. dites-moi comment je peux comparer plusieurs ordres en utilisant OrderCloseTime() ?
 
vik-777:
Et alors ? je peux trouver le dernier ordre fermé et j'ai besoin du dernier ordre fermé avec un magicien, dites-moi comment faire une comparaison de plusieurs ordres par OrderCloseTime() ?

int LastClose =0;
int LastTicket;
for (int i=0; i<OrdersHistoryTotal(); i++)
{
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
  {
    if (OrderMagicNumber()==12)
    {
      if (OrderCloseTime()>LastClose)
      {
        LastClose=OrderCloseTime();
        LastTicket=OrderTicket();
      }
    }
  }
}

if (LastClose>0)
{
  if(OrderSelect(LastTicket, SELECT_BY_TICKET, MODE_HISTORY)==true)
  {
  //// Тра-та-та
  }
}
C'est trop brut et trop direct. Il peut être plus beau et laconique...
 
Figar0:

Rooty-tooty et dans le front. Il pourrait être plus joli et plus succinct...
Merci beaucoup. Merci beaucoup.
 
Craft:

Je suis également intéressé par l'expérience des traders sur ce sujet. Je vous propose un clip vidéo très intéressant de Seaboss.

http://taverno.livejournal.com/2010/04/10/ Seaboss a mis en œuvre la gestion des actions pour Omega, existe-t-il des mises en œuvre similaires pour MT ?

Voici quelque chose que j'ai trouvé (je ne l'ai pas encore lu, mais il semble être dans le sujet)

https://www.mql5.com/ru/forum/125825

 

Vopshchem j'ai pris la théorie des probabilités et statistiquement si la marge de l'ordre sera dans un rayon de 50 pips du prix, alors à l'ouverture de l'ordre avec un bénéfice de 10 pips est plus facile à atteindre - s'il ya aussi un stop loss de 10 pips (même le spread n'est pas un problème) le mouvement d'une tendance est une grande chose ....

Ajouter un stop loss, indépendamment du StepStop

//+------------------------------------------------------------------+
//| Volfram.mq4 |
//| Vova-x@list.ru |
//| |
//+------------------------------------------------------------------+
#property copyright "Vova-x@list.ru"
#propriété lien ""
//-----------------------------------------
extern TakeProfit=10 ;
extern int StepStop=45 ;
extern double Lots=0.01 ;
extern bool MoneyManagement=true ;
extern inttern MarginPercent=10 ;
//-------------------------------------------
int level_sell_stop ;
int level_buy_stop ;

//----------------------------------------------------------
void init()
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL) ;
//Print("levelbuy_stop : "+minstop ;)
}
//-----------------------------------------------------------
void start()
{
if (!IsTradeAllowed()) return ;
level_buy_stop=0 ;
level_sell_stop=0 ;
StepingStop() ;
StepingPendings() ;
si (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop () ;
si (TotalSell()==0 && TotalSellStop()==0) SetSellStop() ;
Comment("Level Buy Stop=",level_buy_stop*Point,
"\n", "Level Sell Stop=",level_sell_stop*Point) ;
}
//---------------------------------------------------------------------------------------------
void StepingStop()
{
si (StepStop<1) retour ;
int ask, bid, open, stop, x ;
double perte ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol())
si (OrderType()==OP_BUY)
{
bid=MathRound(Bid/Point) ;
open=MathRound(OrderOpenPrice()/Point) ;
stop=MathRound(OrderStopLoss()/Point) ;
x=(bid-open)/StepStop ; x-- ; x*=StepStop ;
level_sell_stop=open+x ;
si (stop>=open+x)
perte=(open+x)*Point ;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE) ;
}
si (OrderType()==OP_SELL)
{
ask=MathRound(Ask/Point) ;
open=MathRound(OrderOpenPrice()/Point) ;
stop=MathRound(OrderStopLoss()/Point) ;
x=(open-ask)/StepStop ; x-- ; x*=StepStop ;
level_buy_stop=open-x ;
si (stop>0 && stop<=open-x)
perte=(open-x)*Point ;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE) ;
}
}
}
//----------------------------------------------------------------------------
void StepingPendings()
{
int ask, bid, open ;
double prix, perte, profit ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol())
si (OrderType()==OP_BUYSTOP)
{
si (level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Point) ;
si (open<=level_buy_stop)
price=level_buy_stop*Point ;
perte=prix-étape-arrêt*point ;
profit=0 ; si (TakeProfit>0) profit=prix+TakeProfit*Point ;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE) ;
}
si (OrderType()==OP_SELLSTOP)
{
si (level_sell_stop==0)
open=MathRound(OrderOpenPrice()/Point) ;
si (open>=level_sell_stop)
price=level_sell_stop*Point ;
perte=prix+StepStop*Point ;
profit=0 ; si (TakeProfit>0) profit=prix-TakeProfit*Point ;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE) ;
}
}
}
//-------------------------------------------------------------------
void SetBuyStop()
{
double lots=LotsCounting() ;
double price=Bid+StepStop*Point ;
double perte=prix-StepStop*Point ;
double profit=0 ; if (TakeProfit>0) profit=prix+TakeProfit*Point ;
int ticket=OrderSend(Symbol(),OP_BUYSTOP,lots,prix,0,perte,profit,"",0,0,CLR_NONE) ;
if (ticket<1) Print("La définition d'un ordre en attente a échoué avec l'erreur #",GetLastError()," ",(GetLastError()) ;
}

void SetSellStop()
{
double lots=LotsCounting() ;
double price=Ask-StepStop*Point ;
double perte=prix+StepStop*Point ;
double profit=0 ; if (TakeProfit>0) profit=prix-TakeProfit*Point ;
int ticket=OrderSend(Symbol(),OP_SELLSTOP,lots,prix,0,perte,profit,"",0,0,CLR_NONE) ;
if (ticket<1) Print("La définition d'un ordre en attente a échoué avec l'erreur #",GetLastError()," ",(GetLastError()) ;
}


int TotalBuy()
{
int count=0 ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol()) continuer ;
si (OrderType()==OP_BUY) count++ ;
}
retour (count) ;
}

int TotalBuyStop()
{
int count=0 ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol()) continuer ;
si (OrderType()==OP_BUYSTOP) count++ ;
}
retour (count) ;
}

int TotalSell()
{
int count=0 ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol()) continuer ;
si (OrderType()==OP_SELL) count++ ;
}
retour (count) ;
}

int TotalSellStop()
{
int count=0 ;
for (int i=0 ; i<OrdersTotal() ; i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break ;
si (OrderSymbol()!=Symbol()) continuer ;
si (OrderType()==OP_SELLSTOP) count++ ;
}
retour (count) ;
}

double LotsCounting()
{
lots doubles=Lots ;
if (Gestion de l'argent)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE) ;
double freemargin=AccountFreeMargin() ;
lots=0 ; if (lotsize>0) lots=NormalizeDouble((MarginPercent*freemargin/lotsize),1) ;
}
si (lots>10) lots=NormalizeDouble(lots,0) ;
si (lots<0.01) lots=0.01 ;
retour (lots) ;
}


// Fin