[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 452

[删除]  
Vinin:

但是,指标的标题也需要编辑。所有的缓冲区都应该能够存储值

而且,如果能计算出历史就更好了,当然这也是一个品味问题。而且要更正确地与对象一起工作。在每次打勾时,都会创建相同名称的对象(或产生一个错误)。

我修复了标题。

有一个缓冲区。

     UP_1Buffer[0] = uitog1v;
     UP_2Buffer[0] = uitog2v;
     UP_3Buffer[0] = uitog3v;
     DOWN_1Buffer[0] = ditog1v;
     DOWN_2Buffer[0] = ditog2v;
     DOWN_3Buffer[0] = ditog3v;

明白了。

非常感谢您的帮助。


至于你的建议,我也想做,但不幸的是,我自己做不到。

 
artmedia70:

试着把你在这里写的东西变成文字。

就个人而言,我第一眼就发现了你的难题:如果一不等于一,那么就关闭订单......

之后我没有再看其他的东西......。

不要尝试,甚至不要想,在一个周期内写出一个好的EA是可能的......。

这里有一个想法。

市场进入 在任何时候,如果没有挂牌,更没有开仓。

机器人开了2个挂牌头寸,与当前价格的距离相等(这是一个自定义变量PriceDistance)。

挂单都有相同的TP、SL、TS(如当前价格的镜像。

而且都是在同一时间(从 "TimeStop "变量的角度来看)。

所有....

在实践中:以前的头寸被关闭(要么都有到期时间,要么在SL或TP上--这并不重要),终端被释放,之后立即以相同的参数打开相同的头寸,但是,从当前价格开始,在一个新的范围内。再往下看,根据周期。

这个想法是原始的,100%的掠夺者,但我计划朝这个方向发展,并将其与其他信号连接起来,例如,在某些时间段的特定值的Volumes....。

这就是为什么我需要这个软件的原因....。

所以我给自己定下了写作的任务......

[Deleted]  
晚上好!在这里写了一个最简单的结构,来计算每一个tick 的可用利润。好吧,它不起作用!我看了10分钟,用眼睛吃掉了这些代码。我没有看到任何错误。下面是代码。
//----
        double Profit;
for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS );

if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL ||
      
 OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY){
 
  
 Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}}
 
 
//----
这个神奇的数字是对的,我检查了四次。支架,我能想到的一切都要看,一切似乎都是正确的。也许我写的/比较的顺序不对?我看了看参考资料。请帮助我!没有你,我做不到!你能告诉我可能出了什么问题吗?
[Deleted]  
而且你知道,分别在这三个条件下都能成功!!。
 double Profit;
for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS );

if( OrderType( ) ==OP_SELL ){Alert ("i ", i ," OP_SELL ", Profit);}

if( OrderSymbol()==Symbol()){Alert ("i ", i ," Symbol() ", Profit ,Symbol(), OrderSymbol());}

if( OrderMagicNumber( )==2000  ) {Alert ("i ", i ," OrderMagicNumber( ) ", Profit , OrderMagicNumber( ));}



if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL ||
      
 OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY){
 
  
 Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}}
我感到震惊和困惑!!。
 
dkfl.zrjdktdbx:
晚上好! 我写了一个简单的结构,用于计算每个tick的可用利润。好吧,它不起作用! 我用眼睛看着它,看了10分钟。我没有看到这个错误。Magik的代码是正确的,我检查了四次。支架,我所能想到的一切,一切似乎都是正确的。也许我写的/比较的顺序不对?我看了看参考资料。请帮助我!没有你,我做不到!你能告诉我可能出了什么问题吗?


少了几个括号。

double Profit=0;
for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS );

if( ( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL ) ||
      
( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY ) ){
 
  
 Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}}
 

情况似乎是这样的。尽管最好保持简单。

double Profit=0;
for ( i=OrdersTotal();i>0;i--){ 
   OrderSelect(i-1,SELECT_BY_POS );
   if(OrderSymbol()==Symbol()) {
      if( OrderMagicNumber( )==2000 && OrderType( ) ==OP_SELL )  Profit+=OrderProfit( );
      if( OrderMagicNumber( )==1000 && OrderType( ) ==OP_BUY  )  Profit+=OrderProfit( );
   }
   Alert ("i ", i ," Profit ", Profit);
}
 

我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ?

         Comment(
            "\n",
            "\n", "2/3*9        = ", 2/3*9,
            "\n", "2*9/3        = ", 2*9/3,
            "\n",
         "\n" );


谢谢你!

 
chief2000:

我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ?


谢谢!


这有什么意义?

用计算器检查--你会发现的。

见文档--表达式是如何计算 的。

你至少应该读一读课本...

"不难看出,程序中计算表达式的顺序与数学中类似计算的顺序相似,但在计算中间表达式的数值类型上有所不同,这大大影响了计算的最终结果。特别是(与数学中接受的规则不同),表达式中操作数的顺序具有不小的重要性。为了说明这一点,让我们举一个小例子。 问题6:计算整数A、B和C的表达式A/B*C和A*C/B的值。


直观地说,预计两种情况下的计算结果都是一样的。然而,这只对实数而言是真的。当计算由整数操作数组成的表达式的值时,中间结果是非常重要的。在这种情况下,操作数的顺序是至关重要的。

int A = 3; // Значение целого типа
int B = 5; // Значение целого типа
int C = 6; // Значение целого типа
int Res_1 = A/B*C; // Результат 0 (ноль)
int Res_2 = A*C/B; // Результат 3 (три)

让我们追踪计算表达式A/B*C的过程。

1.首先(从左到右)将计算表达式A/B的值。根据上述规则,表达式(3/5)的值将是整数值0(零)。

2.计算表达式0*C(零乘以C)。结果是整数值0(零)。

3.总体结果(Res_1变量的值)是一个0(零)的整数值。

现在我们来看看在计算表达式A*C/B时,事件是如何发展的。

1.计算A*C。这个表达式的值是整数18(3*6=18)。

2.计算表达式18/B。答案很明显:(18/5)舍弃小数部分后,结果将是一个整数3(3)。

总的结果(Res_2的值)是整数3(3)。

这个例子显示了一个计算整数类型变量值的小程序片段。如果我们用常数取代这些变量,但使用相同的值,最终结果将是相同的。当计算表达式时,其中使用了整数,你应该对程序行的内容非常小心。否则,程序中可能会出现错误,这在以后是很难发现的(特别是在大型程序中)。这个问题在只涉及实数的计算中不会发生。然而,如果你在一个复杂的表达式中使用不同类型的操作数,最终结果可能完全取决于随机生成的包含整数除法的片段。

运算符的概念和一般属性在运算符一节中讨论,而运算符一章则揭示了每个运算符的特征属性"。

 
FileFlush 与保存文件相同吗?
 
Roman.:


有什么问题呢?

用计算器检查--你会发现的。

我查过了--卡西欧和甚至微软的计算器都说2/3*9=6


 
chief2000:

检查了--卡西欧和甚至微软的计算器都说2/3*9=6



好吧。有什么问题呢?