任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 234

 
Integer:


好了,我们来了,一下子...主持人,最好是在需要监督的地方保持秩序。论坛里正在发生疯狂的事情,而版主们在哪里呢?卡住了,打破了,送走了,有版主。也许现在是时候减少这些废话了?

看到论坛上的巨头们无事生非地争吵,我很痛苦。这是一个非常强大的资源的程序员的论坛。要有礼貌。建议。

1.如果有人试图转换人格,即使是偷偷摸摸的,也要禁赛24小时。

2. 侮辱一个人--禁赛一周。

3.重复侮辱并带有脏话--禁赛一个月。

4.无视之前的所有警告,以严厉的方式重复违规行为--永久禁赛。

 
yosuf:

看着论坛上的巨头们为琐事争吵,真是痛苦。这是一个最强大的资源的程序员论坛。要有礼貌。建议。

1.如果有人试图转换人格,即使是偷偷摸摸的,也要禁赛24小时。

2. 侮辱一个人--禁赛一周。

3.反复辱骂 - 禁赛一个月。

4.无视之前的所有警告,以严厉的形式重复违规行为--永久禁赛。



我绝对同意,只是不幸的是,这里的版主没有足够的能力来发现 "伪装的东西"。这里所有微妙的外交官都是一样的。
 

很抱歉,但也许有人能告诉我这是怎么回事。

来自手册。

"可以通过引用来传递参数。在这种情况下,对这些参数的修改将影响到以引用方式传递的被调用函数中的相应变量。数组的元素 不能通过引用来传递。参数只能在单个模块的范围内以引用方式传递, 这种机会不提供给库函数。为了指定参数是通过引用传递的,必须在数据类型后面加上&修饰语。

数组也可以通过引用传递,所有的变化都会反映在初始数组中。与简单参数不同,数组在库函数中也可以通过引用传递"。

为了从一个库函数中通过引用传递一个值,我必须使用一个单位尺寸的数组形式的代理。

是否有其他的变通办法?

而为什么要这样做呢?

 
ALXIMIKS:

很抱歉,但也许有人能告诉我这是怎么回事。

来自手册。

"可以通过引用来传递参数。在这种情况下,对这些参数的修改将影响到以引用方式传递的被调用函数中的相应变量。人们不能通过引用来传递数组的元素。参数只能在单个模块的范围内以引用方式传递, 这种机会不提供给库函数。要指定参数是通过引用传递的,必须在数据类型后面加上修饰符&。

数组也可以通过引用传递,所有的变化都会反映在初始数组中。与简单参数不同,数组在库函数中也可以通过引用传递"。

1.为了从一个库函数中通过引用传递一个值,我必须使用一个单位尺寸的数组形式的代理。

是否有其他的变通办法?

2.为什么要这样做?

1.对。在MQL4中没有其他方法。

2.到底是什么?如果我们说的是通过引用传递,那么它是用来传递大量数据的(大于基本类型的长度)。而不是用它们来装载堆栈。通常情况下,结构、类和数组是通过指针或引用来传递的。尽管类和结构可以通过返回从函数中返回。你也可以返回一个类、结构或数组的引用或指针。

 

我有这个问题。

当我改变止损时,它不时地在最后开出的订单上无法设置止损。这种情况很少发生,但它不时地射出。

我在价格方面没有任何错误。只是一个卑鄙小人有时不把订单放在最后一个位置,之后的订单会重新计算。

你能告诉我,我哪里做错了吗?

//+-------------------------------------------------------------------------------------+
//|                        Управление StopLoss, TakeProfit                              |
//+-------------------------------------------------------------------------------------+
bool ProfitManagement()
{
double StopLossBuy = BuyAP+Profit*Point;                             //Вычисляем StopLoss
double TakeProfitBuy = BuyAP + Profit*Point;                  //Вычисляем цену TakeProfit
double StopLossSell = SellAP-Profit*Point;
double TakeProfitSell = SellAP - Profit*Point;
RefreshRates();
for(int good = 0; good < OrdersTotal(); good ++)     // Выбираем со всего массива ордеров
 {
 if(OrderSelect (good, SELECT_BY_POS, MODE_TRADES))             
 if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
 if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)  //Выбираем ордера эксперта
   { 
//-------------------------Order Buy-----------------------------------------------------  
if (BuyCount >1)                                           //Если открыты длинные позиции
 {
 if (BuyAP < Bid)                                                //Если  мы идем по рынку  
 if (MathAbs(OrderStopLoss() - StopLossBuy) >= Tick)           // Профит не равен нужному
 if (Bid - StopLossBuy > DedZone)                    // Уровень достаточно удален от цены
 if (WaitForTradeContext())                                // Свободен ли торговый поток?
 if (OrderType() == OP_BUY)                                        // Выбираем ордера Buy
 if (!OrderModify(OrderTicket(), 0, NP(StopLossBuy), 0, 0, Lime))    // Изменяем StopLoss
  {
 Alert (Symbol()," Хрень со стопами! ",   GetLastError());
 return(false);
  }

// ну и далее по логике
 
yosuf:

看着论坛上的巨头们为琐事争吵,真是痛苦。这是一个强大资源的程序员论坛。要有礼貌。建议。

1.如果有人试图转换人格,即使是偷偷摸摸的,也要禁赛24小时。

2. 侮辱一个人--禁赛一周。

3.反复辱骂 - 禁赛一个月。

4.无视之前的所有警告,以严厉的形式重复违规行为--永久禁赛。


而行刑队在什么时候?不会有的?
 
Limita:

我有这个问题。

当我改变止损时,它不时地在最后开出的订单上无法设置止损。这种情况很少发生,但它不时地射出。

我在价格方面没有任何错误。只是一个卑鄙小人有时不把订单放在最后一个位置,之后的订单会重新计算。

请告诉我,我哪里做错了?

用语言解释这个顺序。

   //-------------------------Order Buy-----------------------------------------------------  
         if (BuyCount >1) {
            if (BuyAP < Bid)                                      //Если  мы идем по рынку, то выполнится следующая  
            if (MathAbs(OrderStopLoss() - StopLossBuy) >= Tick)   // Профит не равен нужному
            if (Bid - StopLossBuy > DedZone)                      // Уровень достаточно удален от цены
            if (WaitForTradeContext())                            // Свободен ли торговый поток?
            if (OrderType() == OP_BUY)                            // Выбираем ордера Buy
            if (!OrderModify(OrderTicket(), 0, NP(StopLossBuy), 0, 0, Lime)) {
               Alert (Symbol()," Хрень со стопами! ",   GetLastError());
               return(false);
            }

简单来说,你会如何告诉一个远离编程的伴侣

 

我们想赚取,例如,每个位置50个点。止损 等于我们的平均价格+50点

如果我们有一个未平仓的多头头寸,我们在上面赚取一定的资金。我们将StopLoss设置在某一水平。让市场进一步发展。如果我们还没有赚到足够的钱,我们就等待,直到我们开始赚到足够的钱。

我们在买入方向上建立另一个头寸。平均价格改变,我们就改变止损。

当然我们也要设置止损,遵循经纪人的规则(交易流程、止损水平),否则经纪人不会理解我们。)

我希望我能够解释清楚:))。

 
Limita:

我们想赚取,例如,每个位置50个点。止损 等于我们的平均价格+50点

如果我们有一个未平仓的多头头寸,我们在上面赚取一定的资金。我们将StopLoss设置在某一水平。让市场进一步发展。如果我们还没有赚到足够的钱,我们就等待,直到我们开始赚到足够的钱。

我们在买入方向上建立另一个头寸。平均价格改变,我们就改变止损。

当然我们也要设置止损,遵循经纪人的规则(交易流程、止损水平),否则经纪人不会理解我们。)

我希望我能够解释清楚:))。

是的......。我的意思是--这些线条的逻辑......。

你的逻辑很模糊,因为没有大括号。这意味着,如果前面的条件得到满足,并不是每一行都会得到满足

 
Limita:

我有这个问题。

当我改变止损时,它不时地在最后开出的订单上无法设置止损。这种情况很少发生,但它不时地射出。

我在价格方面没有任何错误。只是一个卑鄙小人有时不把订单放在最后一个位置,之后的订单会重新计算。

请告诉我,我哪里做错了?


for (int good = 0; good < OrdersTotal(); good ++){                                // Выбираем со всего массива ордеров
    }    

这样做更好(有人写道,他在用你的方式修改或删除订单时遇到了问题)。

for (int good = OrdersTotal()-1; good >= 0; good --){     // Выбираем со всего массива ордеров
    }  

为什么是油和黄油呢?(别管一件事)

 if (OrderSymbol() != Symbol() || OrderMagicNumber() !=  MagicNumber) continue;
 if (OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber) {          //Выбираем ордера эксперта
    }