[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 445

 

我有一个问题,已经达到了一个可笑的地步。在订单关闭功能中出错。

OrserClose(int tip){
if( tip==1){
for( i=0; i<OrdersTotal(); i++){
           if(true==OrderSelect( i, SELECT_BY_POS, MODE_TRADES)){
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Magic){
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
               }
           }
         }  
}

出现错误(在不同的终端)。

EURCHF,M5: OrderClose错误 4107

EURCHF,M5: OrderClose函数 的无效价格1.48566000


如果我这样做

OrderClose(OrderTicket(), OrderLots(),OrderClosePrice(),3, Violet);
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),3,Violet);

但当我不在单独的函数中写 OrderClose(...) 而是在int start()中写,这个错误就不会发生

问题是什么,如何解决?



 
试着从头到尾运行循环
for( i = OrdersTotal() - 1;  i > 0;  i--)
 
T-G >>:

У меня проблема до смешного дошла. Ошибка в функция закрытия ордера.

дает ошибку (причем в разных терминалах)

EURCHF,M5: OrderClose error 4107

EURCHF,M5: invalid price 1.48566000 for OrderClose function


если сделать

таже самая ошибка. но причем когда я пишу OrderClose(..) не в отдельной функции а в int start() то такой ошибки не возникает.

в чем дело и как вылечить?









价格正常化

 

int tick = 0, MaxTicks = 5;
bool SaveTickOn = 1;
string bid_s;

int start(){
   if( SaveTickOn){
      int rw_mode = FILE_CSV| FILE_READ| FILE_WRITE;
      if( tick == 0) rw_mode = FILE_CSV| FILE_WRITE;
      int handle1 = FileOpen("bids1.dat", rw_mode," ");
      bid_s = DoubleToStr(Bid,Digits); 
      FileWrite( handle1, bid_s);
      if(GetLastError() != 0) Alert("Error= ",GetLastError());
      Alert( tick,": ", bid_s);
      tick++;
      if( tick == MaxTicks) SaveTickOn = 0; 
      FileClose( handle1);
   }
   return(0);
}

有一个简单的代码可以写到一个 带有附录的文件中,但由于某些原因,添加到文件中的选项

FILE_READ| FILE_WRITE 

不起作用。

会是什么呢?

 

把这个放在开始,它将关闭一切的保证,只要把条件...

if ( Close_) {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect( trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

if ((OrderType() == OP_BUY) &&( условие закрытия для бай)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
if ((OrderType() == OP_SELL)&&( условие закрытия для селл)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
}
Sleep(1000);
}
}
}
 
Andrei01 >>:

Есть простейший код для записи в файл с добавлением, но почему то опция добавления в файл

не работает.

Что это может быть?

我还检查了FileIsEnding(handle1)函数返回0,而它应该是1,这意味着MT4在添加到文件模式中一定存在一个错误。

 
Andrei01 писал(а)>>

我还检查了FileIsEnding(handle1)函数返回0,而它应该是1,这意味着MT4在添加到文件模式中一定存在一个错误。

你有没有试过转到文件的末尾?文件搜索()

 
//+------------------------------------------------------------------+
//|将字符串写入文件|
//+------------------------------------------------------------------+
空白的WritingLineInFile(string FileName, string text)。
{
int file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE, " " )。

如果(file_handle>0)
{
FileSeek(file_handle, 0, SEEK_END)。
FileWrite(file_handle, text)。
FileClose(file_handle)。
}

}
没有什么bug,你只需要正确地写。该函数将文本添加到FileName中。
 

你好!

我正在尝试自己编程!

帮我想想该往哪个方向走!如果你急于快速地需要它(对于初学者),那么

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

有一个由两个MA组成的特定指标

我们需要在两个MA的交叉点创建一个声音信号,并使用"MessageBox"函数显示信息。

该怎么做?

1 用 "MessageBox "函数创建一个脚本

2.或者用这个函数在指标代码中添加一个条件?

3.或者将一个现有的脚本链接到指标上?如果可能的话,如何将它们联系起来?

4.还是创建一个专家顾问比较容易?

如果我有,请把带有两条移动平均线的简单经典专家顾问的源代码发给我。

(EA条件...如果快速的МА从下往上穿过(或触及)慢速的MA,则买入。

..............................sel,如果快速的МА从顶部到底部穿过(或触及)慢速的MA。

..............................,带止损功能

.............................. 与TakeProfit函数

..............................,有地段功能

谢谢你!

 
DRevodel писал(а)>>

你好!

试着自己编程!

帮助我了解该往哪个方向走!如果你急需并快速地需要它(对于初学者来说)。

有一个由两个MA组成的特定指标

你需要在两个MA的交汇处创建一个声音信号,用 "MessageBox "函数在屏幕上输出信息。

该怎么做?

或者用这个函数在指标代码中添加一个条件?

>>谢谢你!

原因: