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

 

你输了...我原来是足够的!

你确实安装了BROKO-INVESTOR mt4。或者你(很有可能)在开立模拟账户时,基本搞错了服务器。

从货币名称上很容易看出这一点。只有在货币的名称后面加上_FX。

最小手数=0.1,在市场概览中只出现货币(没有股票市场工具)。

不要 固执己见。去Broco的网站,从Broco-trader部分下载mt4。

或者在服务器87.239.184.73:443 上开一个模拟账户。

但在这种情况下,所有相同的职位都不会在线打开,而且日志会给出一个错误。所以,去弄清楚如何用2个步骤进行程序化开仓

 

我有10分钟的时间。现在我将给你一个代码例子,说明我是如何在BROKO中开仓 的。

在你的EA代码的最末端(START之外),你需要插入这个函数。

//Для  открытие позиций в условиях рыночного
 //                    исполнения торговых заявок 
int WHCOrderSend(string symbol, 
                 int cmd, 
                 double volume, 
                 double price, 
                 int slippage, 
                 double stoploss, 
                 double takeprofit, 
                 string comment, 
                 int magic, 
                 datetime expiration, 
                 color arrow_color)
{
   int ticket = OrderSend( symbol, cmd, volume, price, slippage, 0, 0, comment, 
                                                    magic, expiration, arrow_color);   
   int check = -1;
   if ( ticket > 0 && ( stoploss != 0 || takeprofit != 0)) {
    if (!OrderModify( ticket, price, stoploss, takeprofit, expiration, arrow_color)) {
         check = GetLastError();
     if ( check != ERR_NO_ERROR) {
       Print("OrderModify error: ", ErrorDescription( check));
         }}} else {
      check = GetLastError();
      if ( check != ERR_NO_ERROR){
         Print("OrderSend error: ", ErrorDescription( check));
      }}   return ( ticket);}

 

然后,外部参数中的止动器将被设置为如下所示

extern int     Magic = 777;
extern int      StopLoss=90;
extern int      TakeProfit=90;

double SL, TP;
int ticket;
//-- Подключаемые модули --
#include <stderror.mqh>
#include <stdlib.mqh>
//---------------------------------
而这些职位本身是这样开放的。
 
//если условия соответсвуют заданным, 
// открывем позицию бай 
SL=0; TP=0;
if( StopLoss>0)   SL=Ask-Point* StopLoss;
if( TakeProfit>0) TP=Ask+Point* TakeProfit;   
ticket= WHCOrderSend(Symbol(),OP_BUY, Lots,Ask,3, SL, TP,"Dayria_02", Magic,0,Blue);
if( ticket < 0) { Print("Ошибка открытия ордера BUY #", GetLastError()); 
               Sleep(10000);   return (0); }
同样,对于卖出头寸,也是如此。
SL=0; TP=0;
if( StopLoss>0)   SL=Bid+Point* StopLoss;
if( TakeProfit>0) TP=Bid-Point* TakeProfit;   
ticket= WHCOrderSend(Symbol(),OP_SELL, Lots,Bid,3, SL, TP,"Dayria_02", Magic,0,Red);
if( ticket < 0){Print("Ошибка открытия ордера SELL #", GetLastError()); 
                Sleep(10000);   return (0);  }
 

嘲笑,非常感谢你的反馈,我真的选错了服务器。我正在整理代码。

 

不要争论(c),因为它很容易被混淆。



终端是来自 "生活",演示是别人的...;)

所以优先考虑的是连接的服务器,而不是终端或公司的名称。

特别是如果你像蟑螂一样与急救人员打交道...)))

 
kombat >> :

....,所以连接的是服务器,而不是终端或公司的名称。

特别是EMT像蟑螂一样传播的地方......。)))



是的,当然了。

但对于初学者来说,下载一个新的平台往往比引入一个不同的服务器更容易。

 
cdover >> :

嘲笑,非常感谢你的反馈,我真的选错了服务器。我正在整理代码。

顺便说一下。在测试器中,该EA应该在没有修改功能的情况下工作。

如果你需要快速检查一个程序化的想法,请使用mt4测试器(这里清楚而明智地描述了如何做)。

'测试和优化EA'。

 
rid писал(а)>>

顺便说一下。在测试器中,专家顾问应该在没有修改功能的情况下工作。

如果你需要快速检查一个编程的想法,使用mt4测试器(这里清楚而明智地描述了如何做它)。

测试器是对如何做的简单而清晰的描述)--《测试和优化专家顾问》。

我正在用测试器工作,它真的很奇怪,一切都在工作,并给你优化报告。

 
granit77 >> :

这就是我建议在有和没有模板的情况下运行相同环境(对象、指标)的意思。

至于测试员的减速,对我来说是个黑洞。有时这样的把戏发生在绝对无害的专家顾问身上,让人难以相信,但在日志中一切正常。因此,除了最简单的情况,我不敢给出任何建议。我希望我自己能搞清楚:))

...但发现解决方案是多么激动人心的事情啊 :)

 

下午好!

请帮助我解决一个问题。

我需要写一个公式来计算一个工具的抵押品。

我明白如何提取认捐的总额--使用一个公式。

但我如何将这一质押物分解为工具(货币)?

毕竟,只有买和卖,而且有很多。

mode_margininit 29 1手的初始保证金要求
模式_marginmaintenance 30 支持每1手未平仓 合约所需的保证金金额
模式_保证金对冲 31 每1手重叠头寸收取的保证金

我需要使用这些公式,但不清楚它们之间有什么区别,何时使用它们。

因此,我们需要获得某些工具的保证金总额的分布。

就是说,一种工具的开仓手使用某某金额的保证金。另一种仪器使用这么多,这么多...等等。

也许有人有一些想法?谢谢你。