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

 
belck:

我告诉你不要太在意,我们不是来打架的。我也不喜欢有人拒绝帮助--也就是说,它为我决定,我需要建议或需要读一本书。就像他们说的那样--聪明!

再一次,各位,请不要咄咄逼人,否则这是我的要求还是矛盾的,如果是这样,那我就不写了。

没有人有权禁止你写信和提问......。但是,读一读你们中的许多人的出发点是很有用的。我们也问问题,但是,IMHO,相当不同的问题......

你没有被拒绝帮助--你得到的是一个知识来源。SC书中有什么不能帮助你的???????????????

你不喜欢伊戈尔-金的全面工作特点是什么??????????

首先我给了你一个伊戈尔主题的链接--要么接受,要么离开......使用它,把它插入你的代码中。你可以从他们那里组装,就像从砖头,YUMO不同的完全工作的专家顾问。

你已经开始用它们做什么了?

你的下一个帖子是一个完全无法理解的构造.........堆积如山的代码,其中iniit、start和deinit以及所有的函数几乎都是用一行写的...

我建议你熟悉模块化编程,给了你一个教程的链接......

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!你在回复中要求我把这个教程贴在这里(!),在这个主题中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!。

WHY????????????????????

你面前有大量不同的教程...。

但是,按照你的说法,每个人都应该紧急放下他们正在做的事情,排队等待你的问题的答案。而事实上,答案就在你的眼前

 

谢谢你。

 
artmedia70:

没有人有权利禁止你写信问...但值得一读的是,你们中的许多人都是从什么开始的。我们也问问题,但是,IMHO,相当不同的问题......

你没有被拒绝帮助--你得到的是一个知识来源。为什么SC的书不能帮助你???????????????答案是帮助!!!。

你不喜欢伊戈尔-金的全面工作职能??????????。答案是,把它们放在一起并全部看完需要很长的时间。

首先我给了你一个伊戈尔主题的链接--要么接受,要么离开......使用它,把它粘贴到你的代码中。你可以从他们那里组装,就像从砖头,各种完全工作的专家顾问的UYMU。

你已经开始用它们做什么了?

你的下一个帖子是一个完全不可理解的设计,...堆积如山的代码,其中iniit、start和deinit以及所有的函数几乎都是用一行写的......

我建议你熟悉模块化编程,并给了你一个教程的链接......答案是--我读过了,但没有完全理解。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!你的回答是让我在这里(!)将这个教程发布在这个主题中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!。

WHY????????????????????你为什么这么想!?

你面前有大量不同的教程...。答案是你的。

但是,在你看来,每个人都应该紧急放弃他们的案件,排队等待你的问题的答案。答案--全靠你 而答案,事实上,就在你身上 答案--再次,在你眼前

 
artmedia70:

你从票面上选择一个位置。但你没有检查它到底是在哪里。该位置可以在已经关闭的。

bool OrderSelect(int index,int select,int pool=MODE_TRADES)

该功能选择一个订单进行进一步操作。如果函数成功完成,返回TRUE。如果函数失败,返回FALSE。调用GetLastError()函数,以获得有关错误的信息。

如果订单是由票号选择的,则池子 参数被忽略。票号是订单的唯一标识符。为了确定从哪个列表中选择一个订单,必须分析其关闭时间。如果订单的关闭时间是0,那么该订单是开放的或待定的,并从终端的开放位置列表中取出。未结头寸可以通过其类型 与挂单区分开来。如果收盘时间 不等于0,那么该订单已关闭待定,并已从终端的历史记录中选择。已关闭的订单和已删除的待处理订单之间的区别也可以通过订单 类型来实现。

4051的错误信息说,功能不正确 !!!!!

int total=OrdersTotal()。
int n=0。
for (int i=total-1; i>=0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS))
{
如果(OrderSymbol()==Symbol())
n++;
}
}
如果(total == 1)
{
for (int k=total-1; k>=0; k--)
{
如果(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("order is", k)。
如果((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))。
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue)。
Alert("error", GetLastError())。
}
}
}
}}

return(0);


如果不解决这个问题,我很快就会白发人送黑发人。

 
VOLDEMAR:

错误4051是用一个无效的函数写入的!!!!!。

int total=OrdersTotal()。
int n=0。
for (int i=total-1; i>=0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS))
{
如果(OrderSymbol()==Symbol())
n++;
}
}
如果(total == 1)
{
for (int k=total-1; k>=0; k--)
{
如果(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("order is", k)。
如果((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))。
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue)。
Alert("error", GetLastError())。
}
}
}
}}

return(0);


如果不解决这个问题,我很快就会白发人送黑发人。




错误的函数值 4051 无效的函数参数值
 
artmedia70:

你会有很多这样的机会 :)

非常感谢你,我没有猜到要在常数中寻找。

 
VOLDEMAR:

错误 4051 错误的功能 !!!!!

为什么

如果(total == 1)
{
for (int k=total-1; k>=0; k--)
{

????

我没有看到任何逻辑--条件内的循环并不总是有效的

 
VOLDEMAR:

错误 4051 错误的功能 !!!!!

int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS) )
{
if(OrderSymbol()==Symbol())
n++;
}
}
if(total == 1)
{
for(int k=total-1; k>=0; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES) )
{
//Alert("order exists", k);
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0)
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error " , GetLastError());
}
}
}
}

return(0);


如果我不解决这个问题,我就会变得灰暗和死亡。



你在变量k中有位置号,你需要将订单TICKET 作为第一个参数传递给OrderModify()函数。

在修改之前,先取位置的票,例如,int ticket = OrderTicket(); 并传递ticket而不是k

像这样的地方。我把它写在膝盖上,没有检查任何东西--只是一个想法......。甚至没有进入你的代码。

int i, k, n=0, ticket=0, total=OrdersTotal();
for(i=total-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS))
         {
            if(OrderSymbol()==Symbol())
            n++;
         }
   }
if (total == 1)
   {
      for (k=total-1; k>=0; k--)
         {
            if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
               {
                  Alert("ордер есть ", k);
                  if (OrderType()==OP_BUY && OrderTakeProfit()==0 && OrderStopLoss()==0)
                     {
                        ticket = OrderTicket();
                        OrderModify(ticket,OrderOpenPrice(),slb,tpb,0,Blue);
                        Alert("ошибка ", GetLastError());
                     }
               }
         }
   }

return(0);
 
IgorM:

为什么

if (total == 1)
{
for (int k=total-1; k>=0; k-)
{

????

我看不出其中有什么逻辑--条件内的循环并不总是成立。

伊戈尔,这里的意思并不清楚......

如果订单 总数为1(总数==1),则从零(总数-1)到零的循环k>=0

你是否明白什么?????我也是...:))

 

你好。

我有个问题,我想这样获利。

double TakeProfit =  ((LineIndicator - Ask)/2); // но мне нужно указать, что если эта цифра меньше допустимого значение, то выставляется автоматом минимальное допустимое 
значение, а это 10 пунктов.

这是第一点,但现在是另一点。

指标线在一段时间后改变了位置。我如何确保止盈 不改变,而保持与我打开时设置的相同?

原因: