[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 370

 
Boneshapper:

明白了。非常感谢你。这是一个很好的选择,但我无法用历史数据测试这个系统。所以我想以某种方式自动开出它。如果你有任何其他建议,请告诉我。
为了对历史进行测试,我们应该确定关闭条件。盈利/亏损或头寸寿命,例如不超过3天。这可以通过使用OrderModify 修改订单/仓位的日期时间到期来实现。
 
paladin80:
为了在历史上测试它,我们必须决定仓位的关闭条件。盈利/亏损或头寸寿命,例如不超过3天。这可以通过使用OrderModify 修改订单/职位的日期时间到期来实现。

是的,事实证明,我们将有一个密切的条件 - 它是位置的生命周期,所有的权利,不超过3天。我读过关于OrderModify的文章,但我还是不明白。我将尝试在晚上进行。再次非常感谢您的答复,非常及时:)
 

对不起,这不是语言上的问题,但我真的需要知道是否有人知道。

在Windows 7中,一些文件拒绝打开。我按下 "用...打开",选择一个程序,但它没有出现在程序选择列表中。有谁知道如何取消这一限制?在XP上没有这个功能。该死的七人组让我很难受 :(

我怀疑注册表需要被清理。具体来说,我不能双击FB2格式。CoolReader运行,一切正常。它打开。双击运行的文件格式fb2不想要。

运行注册表搜索Utillitoy JV-16(一直使用它)--好吧,它发现了这么多提到fb2的注册表项,只是恐怖--甚至不敢杀。该怎么做?谷歌搜索没有任何结果:(

 

问候!

帮我重新做一下代码。这段代码并不新鲜,但有些东西对我来说不起作用。

以下是代码。

  *///-----------------Закрытие по истории в безубыток--------------------
   //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0;  // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0,
Time_at_History_Previos = 0;     
 
 if(OrdersHistoryTotal() != 0)
   {
    for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
      {
       OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
          if(OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
             if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit();
                 Sum_Loss=Sum_Loss+lastLoss;  // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                if(OrderProfit() >= 0)
                  break;
               }
            }
         }
      }
   }

if (Sum_Loss < 0.0) { // Имеем убыток по закрытым позам
  if (((AccountEquity() + Sum_Loss + (Sum_Loss * 0.25)) >= AccountBalance()) && (((totalSell > 0) && (totalBuy < 1)) || ((totalSell < 1) && (totalBuy > 0)))) { // Достигли безубытка
    // Здесь какой-то код, который необходимо выполнить при достижении безубытка
        CloseAllBuy();
           CloseAllSell();
           Sum_Loss = 0.0;
           
  
  }
}
//-----------------------------------------------------------------

我尽力在做完负数交易时打开一个循环,在做完正数交易后,如果我有负数交易,我将用最后一个平仓单的利润减少我的负数余额,这比0要高。也就是说,如果订单以负数收盘,我们就开始工作,如果接下来的交易盈利多于亏损,我们就收盘,如果接下来的交易以正数收盘,但这个正数不超过负数,在之前的订单中,这个正数来自于负数余额,而接下来的订单我们与新的指标进行比较,这已经少了,因为我们之前已经以负数收盘。这就是为什么我们有正的平衡。

 
drknn:

对不起,这不是在语言中,但我真的需要它,如果有人知道。

在Windows 7中,一些文件拒绝打开。我按下 "用...打开",选择一个程序,但它没有出现在程序选择列表中。有谁知道如何取消这一限制?在XP上没有这个功能。该死的七人组让我很难受 :(

我怀疑注册表需要被清理。具体来说,我不能双击FB2格式。CoolReader运行,一切正常。它打开。双击运行的文件格式fb2不想要。

运行注册表搜索Utillitoy JV-16(一直使用它)--好吧,它发现了这么多提到fb2的注册表项,只是恐怖--甚至不敢杀。该怎么做?谷歌搜索没有任何结果:(


开始 - 所有节目 - 默认节目 - 设置映射关系
 
drknn:

对不起,这不是语言上的问题,但我真的需要知道是否有人知道。

在Windows 7中,一些文件拒绝打开。我按下 "用...打开",选择一个程序,但它没有出现在程序选择列表中。有谁知道如何取消这一限制?在XP上没有这个功能。该死的七人组让我很难受 :(

我怀疑注册表需要被清理。具体来说,我不能双击FB2格式。CoolReader运行,一切正常。它打开。双击运行的文件格式fb2不想要。

运行注册表搜索Utillitoy JV-16(一直使用它)--好吧,它发现了这么多提到fb2的注册表项,只是恐怖--甚至不敢杀。该怎么做?谷歌搜索没有任何结果:(

http://rhpc.ru/topic/200/
 

伙计们...帮助谁知道!!!!


该策略的实质是:通过随机方式进入(5,14,3),也通过随机方式退出,但有另一个周期(5,3,3)。我不明白如何通过随机指数而不是反向信号来进行退出。
我有一个问题,我不知道如何解决,我试着解释一下。
因此,在我发布的代码中,有2个函数
//+------------------------------------------------------------------+
//|准备关闭的票数组 |
//+------------------------------------------------------------------+
void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[], double arrayTickets[][9] )
{
int size=ArrayRange(arrayTickets,0);
//----
if (size=0) return;

int i,type,ticket,closeSize;
for (i=0;i<size;i++)
{
type=arrayTickets[i][1];
//如果订单类型 不是市场订单,则跳过
if (type>OP_SELL) continue;

if (Reverses) //翻转市场订单类型
{
if (type==OP_BUY) type=OP_SELL; else type=OP_BUY;
}

//在这里我们决定每个未平仓订单的命运
//将其留在市场或在收盘时将其加入数组
if (type==OP_BUY)
{
//
//允许离开买入的代码

//作为一个例子
if (signal==OP_BUY) continue;
}

如果(type==OP_SELL)
{
//
//代码允许继续卖出

//作为一个例子
if (signal==OP_SELL) continue;
}


closeSize=ArrayRange(tantsClose,0);
ArrayResize(tantsClose,closeSize+1);
ArrayResize(tantsClose,closeSize+1);
ticketsClose[closeSize][0] = arrayTickets[i][0]; // ticket #
ticketsClose[closeSize][1] = arrayTickets[i][1]//订单类型

//在这里我们指定关闭多少手
lots[closeSize] = arrayTickets[i][2]; //要关闭的数量
//有可能部分关闭,那么上面一行必须改写
}
//----
return;
}

//+------------------------------------------------------------------+
//|用指定的票数关闭订单 |
//+------------------------------------------------------------------+
void CloseMarketOrders(int ticketsArray[][2], double lotsArray[])
{
//----
int i,size=ArrayRange(ticketArray,0);
if (size=0) return;

int ticket,type;
double lots。
bool res;

int total=OrdersTotal();

for (i=0;i<size;i++)
{
ticket = ticketsArray[i][0];
type = ticketsArray[i][1];
lots = lotsArray[i];
RefreshRates(); //以防市场环境被更新

//购买关闭块
if (type==OP_BUY)
{
res = OrderClose(ticket,lot,Bid,Slippage,Orange);
if (!res)
{
Print("Failed to close order to buy #",ticket," !Error #",GetLastError();
//进一步的错误处理,自己写
}
}

//销售关闭块
if (type==OP_SELL)
{
res = OrderClose(ticket,lot,Ask,Slippage,Orange);
if (!res)
{
Print("Failed to close sell order #",ticket,"!Error #",GetLastError());
//进一步的错误处理,自己写
}
}

}
//----
return;
}

void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9])函数需要传递一个条件来决定订单是否应该被关闭。
我试着设置条件,但没有任何效果....
谁能看看这些函数中是否有错误或者我搞砸了....
附加的文件:
osc_test.mq4  37 kb
 
在一个交易时段 内,出价能否等于0?(有时)。
 
tara:

开始 - 所有节目 - 默认节目 - 设置映射关系

该操作导致一个程序选择窗口。指定一个节目,它却没有出现在那里。
 

恢复前协会没有帮助--酷爱阅读的人是一个前阅读者。以为会有帮助。遗憾的是。还有什么其他的吗?他们那里有其他文件扩展的链接,但没有fb2。