Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 204

 

Hallo zusammen.

Ich habe eine Frage. Ich habe einen EA über Martin geschrieben. Wenn ich Aufträge ändere und TakeProfit einstelle, fliegt er in den Himmel. Und das geschieht nur auf einem echten Konto. Im Strategy Tester ist alles in Ordnung, und auch in der Demo ist alles in Ordnung. Ich verstehe nicht, was der Trick ist.

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

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))

if(AuftragSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(Auftragsart()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots();

BuyLot+=OrderLots();

}

wenn (Auftragsart()==OP_SELL)

{

Verkaufspreis+=OrderOpenPrice()*OrderLots();

SellLot+=OrderLots();

}

}

if(b>1&&BuyLot>0)

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

if(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))

if(AuftragsSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(Auftragsart()==OP_BUY)

{

if(b==1)

{ if(OrderTakeProfit()==0)

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

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

wenn (b>1)

if(OrderTakeProfit()!=BuyAverange)

if(Ask<BuyAverange)

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

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

}

wenn (Auftragsart()==OP_SELL)

{

if(s==1)

if(AuftragGewinnmitnahme()==0)

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

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

wenn (s>1)

if(OrderTakeProfit()!=SellAverange)

if(Gebot>Verkaufsbereich)

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

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

}

}

 

Kolleginnen und Kollegen - ich habe beschlossen, hier zu schreiben, weil ich nicht weiß, wohin ich mich sonst wenden soll. Bitte korrigieren Sie - in MT 4 - beim Speichern eines Standardprofils - Standard - beim Ausführen mehrerer Roboter auf mehreren Registerkarten - im Allgemeinen dieses Thema von unten Eurobucks, Pfundbucks, etc. - Wenn man das Terminal neu startet, ist es durcheinander, und wenn man das Standardprofil lädt, ist es auch durcheinander - das ist sehr lästig, ich muss die Reihenfolge manuell sortieren - was kam nach was, usw.


KANN es repariert werden?

 
#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);

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

Guten Tag!

Warum ist der Chart in mt4 anders als der Chart in mt5? Und wenn möglich, wie übertrage ich den mt5 Chart auf mt4? (Nur mein Broker verwendet Preisdaten wie in mt5, aber alle meine Lieblingsindikatoren sind in mt4)

 

Können Sie mir sagen, warum der Postdienst nicht funktioniert?


 
Vitaly Muzichenko:

Können Sie mir sagen, warum das Senden an die Post nicht funktioniert?


Vielleicht von wem und für wen sollte es anders sein?

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

Vielleicht von wem und für wen sollte es anders sein?

Ich habe es bereits versucht, nichts funktioniert.

 
Vitaly Muzichenko:

Ich habe es bereits ausprobiert, es funktioniert nicht.

Alle Mailer verlangen nun, dass Sie ein separates Passwort für eine Drittanwendung erstellen. Lesen Sie die Hilfe Ihres Mailers - höchstwahrscheinlich müssen Sie ein separates Passwort erstellen.


Außerdem müssen Sie den genauen Port des SMTP-Servers angeben, etwa so:

smtp.ukr.net:465
 
Vladimir Karputov:

Alle Mailer verlangen nun, dass Sie ein separates Passwort für eine Drittanbieteranwendung erstellen. Lesen Sie in der Hilfe Ihres E-Mail-Anbieters nach - wahrscheinlich müssen Sie ein separates Passwort erstellen.

Außerdem müssen Sie den genauen Port des SMTP-Servers angeben, etwa so:

Tak-zhe hat es versucht - ist aber nicht gegangen.

Der Port wurde vorgegeben: smtp.ukr.net:465


 
Funktioniert es überhaupt mit einem der Mailer?