初学者的问题 MQL4 MT4 MetaTrader 4 - 页 204

 

大家好。

我有一个问题。我写了一个 关于马丁的EA。当我修改订单并设置TakeProfit时,它就会飞到天上。而且这只发生在真实账户上。在策略测试器中一切正常,在演示中也一切正常。我不明白这有什么诀窍。

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

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

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

如果(OrderSelect(i,SELECT_BY_POS))

如果(OrderSymbol()==Symbol())

如果(OrderMagicNumber()==Magic)

{

如果(OrderType()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots()。

BuyLot+=OrderLots()。

}

如果(OrderType()==OP_SELL)

{

SellPrice+=OrderOpenPrice()*OrderLots()。

SellLot+=OrderLots()。

}

}

如果(b>1&&BuyLot>0)

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

如果(s>1&&SellLot>0)

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

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

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

如果(OrderSelect(i,SELECT_BY_POS))

如果(OrderSymbol()==Symbol())

如果(OrderMagicNumber()==Magic)

{

如果(OrderType()==OP_BUY)

{

如果(b==1)

{ 如果(OrderTakeProfit()==0)

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

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

如果(b>1)

如果(OrderTakeProfit()!=BuyAverange)

如果(Ask<BuyAverange)

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

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

}

如果(OrderType()==OP_SELL)

{

如果(s==1)

如果(OrderTakeProfit()==0)

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

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

如果(s>1)

如果(OrderTakeProfit()!=SellAverange)

如果(Bid>SellAverange)

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

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

}

}

 

同事们--决定在这里写,因为我不知道还能去哪里。请纠正 - 在MT 4中 - 当保存一个默认的配置文件 - 默认 - 当在多个标签上运行多个机器人 - 一般来说,这个主题从下面的eurobucks,poundbucks等。- 当你重新启动终端时--它被混在一起,当加载默认配置文件时--它也被混在一起--这非常不方便,我必须手动整理顺序--什么在什么之后,等等。


它能被修复吗?

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

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

日安!

为什么mt4中的图表与mt5中的图表不同?如果可能的话,我如何将mt5图表转移到mt4?(只是我的经纪人使用的价格数据是mt5的,但我所有喜欢的指标都是mt4的)

 

你能告诉我为什么邮政服务不工作了吗?


 
Vitaly Muzichenko:

你能告诉我,为什么寄到邮局就不能用了?


也许从谁那里,对谁来说应该是不同的?

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

也许从谁那里,对谁来说应该是不同的?

我已经试过了,没有任何效果。

 
Vitaly Muzichenko:

我已经试过了,不起作用。

现在所有的邮件都要求你为第三方应用程序生成一个单独的密码。阅读你的邮件帮助- 很可能你需要生成一个单独的密码。


另外,你需要指定SMTP服务器的确切端口,像这样。

smtp.ukr.net:465
 
Vladimir Karputov:

现在所有的邮件都要求你为第三方应用程序生成一个单独的密码。阅读你的电子邮件供应商的帮助- 你可能需要生成一个单独的密码。

另外,你需要指定SMTP服务器的确切端口,像这样。

德哲试图--没有去。

所规定的端口是:smtp.ukr.net:465


 
它甚至可以与任何一个邮递员一起工作吗?
原因: