被错误困扰的是没有交易业务 - 页 8

 
阿特姆,我对你个人非常尊重。请提请你们的程序员注意这个问题。我确信在NZDUSD部分的验证器有问题。也许没有历史或其他东西。我可能是错的,但在你那边也检查一下一切也不为过。
 
Artyom Trishkin:

验证器通过参数。当遇到第一个组合没有交易 时,你就卸载专家顾问。这就是全部。进一步的测试是没有用的。

问题是,你不允许验证器与专家顾问一起工作。

即使某些符号上没有交易,测试也会通过。最主要的是,如果不能进行交易操作,专家顾问将发出有关的日志记录,并继续工作。
你看,你正在为人们制作一个程序,而不是一个验证器。为什么在你的市场中需要一个不处理错误的程序,而只是将它们从图表中删除?你会自己购买这样的奇迹吗?

Artem,这是一个测试EA(我正在检查验证,我不打算卖掉它),当卸货条件成功时,它仍然不会做交易。 在最低地段,不可能开出交易,它只会用打印的东西填满日志文件。这 不会再有任何好处。

我会去掉卸货,但这不会改变什么。请看我以前的帖子,其中有测试EA的结果,没有卸载。

 
Andrey Kaunov:

这有什么意义,雷纳特。嗯,我做到了。

是的,它的工作没有错误。

在这里,我为市场做了这个。

//+-------------- ФУНКЦИЯ ОБРАБОТКИ ОШИБОК ---------------------------------+
int Fun_Error(int Error)
{  
   switch(Error)
   {
        case 0:      return (0);
        case 1:      Print("Trying to change already set values with the same values.");return(1);
        case 2:      Print("Common mistake. Stop all trading attempts until the circumstances are clarified.");return(0);
        case 3:      Print("Wrong parameters passed to the trading function.");return(1);
        case 4:      Print("The trading server is busy. Let's try again ..");Sleep(3000);return(1);
        case 5:      Print("Old version of the client terminal.");return(0);
        case 6:      Print("No connection to the trading server.");return(1);
        case 7:      Print("Not enough rights.");return(1);
        case 8:      Print("Too frequent requests.");return(1);
        case 9:      Print("Invalid operation disrupting server operation.");return(1);
        case 64:     Print("The account is blocked. It is necessary to stop all attempts at trading operations.");return(0);
        case 65:     Print("Invalid account number.");return(1);
        case 128:    Print("The transaction has expired.");return(1);
        case 129:    Print("Wrong bid or ask price, possibly not normalized price.");return(1);
        case 130:    Print("Stops that are too close or incorrectly calculated or abnormal prices in stops (or in the opening price of a pending order).");return(1);
        case 131:    Print("Wrong volume, error in granulation of volume.");return(1);
        case 132:    Print("The market is closed.");return(1);
        case 133:    Print("Trade is prohibited.");return(0);
        case 134:    Print("Not enough money to complete the operation.");return(0);
        case 135:    Print("The price has changed. We try again ..");RefreshRates();return(1);
        case 136:    Print("No price. We are waiting for a new tick ..");
                     while(RefreshRates()==false)// До нового тика
                     Sleep(1);
                     return(1);
        case 137:    Print("The broker is busy. Let's try again ..");Sleep(3000);return(1);
        case 138:    Print("The requested price is out of date, or bid and ask are confused.");return(1);
        case 139:    Print("The order is blocked and is already being processed.");return(1);
        case 140:    Print("Only purchase allowed. You cannot repeat the SELL operation.");return(1);
        case 141:    Print("Too many requests.");return(1);
        case 142:    Print("The order is queued.");return(1);
        case 143:    Print("The order has been accepted by the dealer for execution.");return(1);
        case 144:    Print("The order is canceled by the client upon manual confirmation of the transaction.");return(1);
        case 145:    Print("Modification is prohibited, because the order is too close to the market and is blocked due to possible early execution.");return(1);
        case 146:    Print("The trading subsystem is busy. Let's try again ..");Sleep(500);return(1);
        case 147:    Print("Using the expiration date of the order is prohibited by the broker.");return(1);
        case 148:    Print("The number of open and pending orders has reached the limit set by the broker.");return(1);
        case 149:    Print("An attempt to open an opposite position to an existing one if hedging is prohibited.");return(1);
        case 4000:   return (0);
        case 4001:   Print("Invalid function pointer.");return(1);
        case 4002:   Print("Array index is out of range.");return(1);
        case 4003:   Print("No memory for function stack.");return(1);
        case 4004:   Print("Stack overflow after recursive call.");return(1);
        case 4005:   Print("There is no memory on the stack for passing parameters.");return(1);
        case 4006:   Print("There is no memory for the string parameter.");return(1);
        case 4007:   Print("There is no memory for the time line.");return(1);
        case 4008:   Print("Uninitialized string.");return(1);
        case 4009:   Print("An uninitialized string in an array.");return(1);
        case 4010:   Print("There is no memory for the string array.");return(1);
        case 4011:   Print("Line is too long.");return(1);
        case 4012:   Print("The remainder of division by zero.");return(1);
        case 4013:   Print("Division by zero.");return(1);
        case 4014:   Print("Unknown team.");return(1);
        case 4015:   Print("Wrong transition.");return(1);
        case 4016:   Print("Uninitialized array.");return(1);
        case 4017:   Print("DLL calls are not allowed.");return(1);
        case 4018:   Print("Unable to load library.");return(1);
        case 4019:   Print("Unable to call function.");return(1);
        case 4020:   Print("Calls to external library functions are not allowed.");return(1);
        case 4021:   Print("There is not enough memory for the string returned from the function.");return(1);
        case 4022:   Print("The system is busy.");return(1);
        case 4050:   Print("Incorrect number of function parameters.");return(1);
        case 4051:   Print("Invalid function parameter value.");return(1);
        case 4052:   Print("Internal error of string function.");return(1);
        case 4053:   Print("Array error.");return(1);
        case 4054:   Print("Misuse of timeseries array.");return(1);
        case 4055:   Print("Custom indicator error.");return(1);
        case 4056:   Print("Arrays are incompatible.");return(1);
        case 4057:   Print("Error processing global variables.");return(1);
        case 4058:   Print("Global variable not detected.");return(1);
        case 4059:   Print("Function not allowed in test mode.");return(1);
        case 4060:   Print("Enter the HTTP address !!!.");return(1);
        case 4061:   Print("Error sending mail.");return(1);
        case 4062:   Print("A parameter of type string is expected.");return(1);
        case 4063:   Print("A parameter of type integer is expected.");return(1);
        case 4064:   Print("A parameter of type double is expected.");return(1);
        case 4065:   Print("An array is expected as a parameter.");return(1);
        case 4066:   Print("The requested historical data is in an update state.");return(1);
        case 4067:   Print("An error occurred while performing a trading operation.");return(1);
        case 4099:   Print("End of file.");return(1);
        case 4100:   Print("An error occurred while working with the file.");return(1);
        case 4101:   Print("Invalid file name.");return(1);
        case 4102:   Print("Too many open files.");return(1);
        case 4103:   Print("Unable to open file.");return(1);
        case 4104:   Print("Incompatible file access mode.");return(1);
        case 4105:   Print("No order has been selected.");return(1);
        case 4106:   Print("Unknown character.");return(1);
        case 4107:   Print("Incorrect price parameter for the trading function.");return(1);
        case 4108:   Print("Invalid ticket number.");return(1);
        case 4109:   Print("Trading is not permitted. You must enable the option Allow Expert Advisor to trade in the expert properties.");return(1);
        case 4110:   Print("Long positions are not allowed. It is necessary to check the properties of the expert.");return(1);
        case 4111:   Print("Short positions are not allowed. It is necessary to check the properties of the expert.");return(1);
        case 4200:   Print("The object already exists.");return(1);
        case 4201:   Print("An unknown property of the object was requested.");return(1);
        case 4202:   Print("The object does not exist.");return(1);
        case 4203:   Print("Unknown object type.");return(1);
        case 4204:   Print("No object name.");return(1);
        case 4205:   Print("Error coordinates of the object.");return(1);
        case 4206:   Print("The specified subwindow was not found.");return(1);
        case 4207:   Print("An error occurred while working with the object.");return(1);
        return(0);
   }
   return(0);
}

 

我是这样连接的。

            ticket=OrderSend(Symbol(),OP_SELL,Lot,BID,0,0,0,"",0,0,clrNONE);
            if(ticket<0 && Fun_Error(GetLastError())==1){return;}

//---
           
            ticket=OrderSend(Symbol(),OP_BUY,Lot,ASK,0,0,0,"",0,0,clrNONE);
            if(ticket<0 && Fun_Error(GetLastError())==1){return;}

 

试试吧,可能会出现错误

 
谢谢你,雷纳特。这很有用。我将为自己拿下它 ))))
 
Andrey Kaunov:

Artyom,这是一个测试EA,无论如何,当卸载条件成功时,它不会做交易。 在不可能打开交易的最小批量时,它将直接用打印件填满日志文件。进 一步的工作将没有任何用处。

我会去掉卸货,但这不会改变什么。请参考我以前的帖子,其中有测试无倾销的EA的结果。

那么你就不能为每个错误的交易请求 做一个单一的条目吗?

 
Renat Akhtyamov:
是的,它的工作没有错误

在这里,为了市场。

//+-------------- ФУНКЦИЯ ОБРАБОТКИ ОШИБОК ---------------------------------+

这不是错误处理。它只是打印出错误代码的 描述。

处理是指当一个算法收到错误时的执行。该算法应尝试创造条件来纠正错误并重新发送请求。如果它完全失败了,它应该记录原始参数,尝试把它们改成某某,最后的结论是,即使改好了参数,也不可能发送请求。

 
Andrey Kaunov:
谢谢你,雷纳特。这很有用。我愿意接受))))

不要...

 
Artyom Trishkin:

这不是错误处理。它只是打印出错误代码的 描述。

处理是指当一个算法收到错误时的执行。该算法应尝试创造条件来纠正错误,并发送第二个请求。如果它完全无法做到这一点,则记录原始参数,试图将其修正为某某,最后的结论是,即使有修正的参数,也不可能发送请求。

10年来在此

无投诉

顺便说一句,最早的一个版主就是这样做的。

维宁,记得他吗?