Questions des débutants MQL4 MT4 MetaTrader 4 - page 204

 

Bonjour à tous.

J'ai une question. J'ai écrit un EA sur Martin. Lorsque je modifie les ordres et que je fixe le TakeProfit, il s'envole dans le ciel. Et cela n'arrive que sur un compte réel. Tout est OK dans le testeur et dans le mode démo aussi. Je ne comprends pas quelle est l'astuce.

//+------------------------------------------------------------------+

double BuyAverange=0, SellAverange=0, SellPrice=0, BuyPrice=0, BuyLot=0,SellLot=0 ;

for(int i = OrdersTotal()-1 ; i>=0 ; i--)

if(OrderSelect(i,SELECT_BY_POS))

si(OrderSymbol()==Symbol())

si(OrderMagicNumber()==Magique)

{

si(OrderType()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots() ;

BuyLot+=OrderLots() ;

}

si (OrderType()==OP_SELL)

{

SellPrice+=OrderOpenPrice()*OrderLots() ;

SellLot+=OrderLots() ;

}

}

si(b>1&&BuyLot>0)

BuyAverange=NormalizeDouble(BuyPrice/BuyLot+Profit*Point(),Digits()) ;

si(s>1&&SellLot>0)

SellAverange=NormalizeDouble(SellPrice/SellLot-Profit*Point(),Digits()) ;

//+-----------------------------------------------------------

for(int i = OrdersTotal()-1 ; i>=0 ; i--)

if(OrderSelect(i,SELECT_BY_POS))

si(OrderSymbol()==Symbol())

si(OrderMagicNumber()==Magique)

{

si(OrderType()==OP_BUY)

{

si(b==1)

{Si(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()+TakeProfit*Point(),Digits(),0,clrGreen)==false)

Print("Errow N",GetLastError()) ;

si (b>1)

si(OrderTakeProfit()!=BuyAverange)

si(Ask<BuyAverange)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(BuyAverange,Digits(),0,clrGreen)==false)

Print("Errow N",GetLastError()) ;

}

si (OrderType()==OP_SELL)

{

si(s==1)

si(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()-TakeProfit*Point(),Digits(),0,clrGreen)==false)

Print("Errow N",GetLastError()) ;

si (s>1)

si(OrderTakeProfit()!=SellAverange)

if(Bid>SellAverange)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(SellAverange,Digits(),0,clrGreen)==false)

Print("Errow N",GetLastError()) ;

}

}

 

Chers collègues, j'ai décidé d'écrire ici parce que je ne sais pas où aller. Veuillez corriger - dans MT 4 - lors de l'enregistrement d'un profil par défaut - par défaut - lors de l'exécution de plusieurs robots sur plusieurs onglets - en général ce thème de dessous eurobucks, poundbucks, etc. - Lorsque vous redémarrez le terminal, il est mélangé et lorsque vous chargez le profil par défaut, il est également mélangé. C'est TRÈS gênant, je dois trier manuellement la séquence - ce qui vient après quoi, etc.


Peut-on le réparer ?

 
#property strict
#property copyright "Alex Kolodin"
#property link "www."
#property version "1.00"
#property  show_inputs

input color buy =clrGreen;
input color sell =clrCoral;
input int _width=3;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int i,k=OrdersHistoryTotal(), r=-1;
   string sy=Symbol();
   for(i=0; i<k; i++)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderType()==OP_BUY)
        {
         if(OrderSymbol()==sy)
         {
          TrendCreate(0,"Trendline"+(string)OrderTicket(),0,
                        OrderOpenTime(),
                        OrderOpenPrice(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        buy,
                        STYLE_SOLID,
                        _width
                        );
        }    
         if(OrderType()==OP_SELL)
              {
               TrendCreate(0,"TrendLine"+(string)OrderTicket(),0,
                        OrderOpenPrice(),
                        OrderOpenTime(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        sell,            
                        STYLE_SOLID,
                        _width
                        );
              }
          }
         } 
 
 
      }
    }
    
//+------------------------------------------------------------------+
bool TrendCreate(const long chart_ID=0,
const string namename="trendLine",
const int sub_window=0,
datetime time1=0,
double price1=0,
datetime time2=0,

double price2=0,
const color clr=clrRed,
const ENUM_LINE_STYLE style=STYLE_SOLID,
const int width=1,
const bool back=false,
const bool selection=false, 
const bool ray_right=false,
const bool hidden=true,
const long z_order=0)
{

ResetLastError();
 if(!ObjectCreate(chart_ID,namename,OBJ_ARROW,sub_window,time1,price1,time2,price2))
     {
      Print(__FUNCTION__,
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
      return(false);
     }
     ObjectSetInteger(chart_ID,namename,OBJPROP_COLOR,clr);
     ObjectSetInteger(chart_ID,namename,OBJPROP_STYLE,style);
     ObjectSetInteger(chart_ID,namename,OBJPROP_WIDTH,width);
     ObjectSetInteger(chart_ID,namename,OBJPROP_BACK,back);
     ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,namename,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,namename,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,namename,OBJPROP_ZORDER,z_order);
   return(true);

//
     }Здраствуй, читающий уважаемый(АЯ), вот такой код по идее выдаст трендовую линию по двум точкам. Компилируется, а результата нет. Помогите, спасибо.
 

Bonne journée !

Pourquoi le graphique de mt4 est différent de celui de mt5 ? Et si possible, comment puis-je transférer le graphique mt5 vers mt4 ? (Mon courtier utilise les données de prix comme dans mt5, mais tous mes indicateurs favoris sont dans mt4).

 

Pouvez-vous me dire pourquoi le service postal ne fonctionne pas ?


 
Vitaly Muzichenko:

Pouvez-vous me dire pourquoi l'envoi au bureau de poste ne fonctionne pas ?


Peut-être de qui et à qui devrait-il être différent ?

 
Сергей Таболин:

Peut-être de qui et à qui devrait-il être différent ?

Oui, j'ai déjà essayé, mais rien ne fonctionne.

 
Vitaly Muzichenko:

J'ai déjà essayé, ça ne marche pas.

Tous les expéditeurs vous demandent désormais de générer un mot de passe distinct pour une application tierce. Lisez l'aide de votre expéditeur - il est fort probable que vous deviez générer un mot de passe distinct.


De plus, vous devez spécifier le port exact du serveur SMTP, comme ceci :

smtp.ukr.net:465
 
Vladimir Karputov:

Tous les expéditeurs vous demandent désormais de générer un mot de passe distinct pour une application tierce. Lisez l'aide de votre fournisseur de courrier électronique - vous devrez probablement créer un mot de passe distinct.

De plus, vous devez spécifier le port exact du serveur SMTP, comme ceci :

Tak-zhe a essayé - n'y est pas allé.

Le port a été prescrit : smtp.ukr.net:465


 
Est-ce que ça marche avec tous les expéditeurs ?
Raison: