[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 321

 
Boneshapper:

当我写这个的时候,我没有在条件前面写Flag=0,因为这样它就会在每次交易前被更新,并且永远是0。如果我们不指定一个值,比如只有int Flag,程序会把它赋值为0,对吗?

我给你写的代码中,Flag在start函数之外,而不是在它里面。如果你把它放在里面,它就没有用了。
 
Roger:

奇怪,这段代码是有效的。也许你把它放在了错误的地方?
我想明白了,Flag的值是在if里面给出的,为什么它在退出的时候会丢失它。
 
Roger:

我给你写的代码中,Flag在启动函数之外,而不是在里面。如果你把它放在里面,它是没有用的。

对不起,我写了一个答复,但我没有看到你的回答。
是的,是的,你是对的,这正是我的错误。 但出路是使用Static。

非常感谢你所做的一切。

 

晚安!

你能告诉我是否有一个函数

int start()
{
OrderSend (Symbol(, OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
if (OrderSelect(1001, SELECT_BY_TICKET)== true)
int Ticket = OrderTicket ();
Alert ("Ticket =", Ticket);
OrderClose(Ticket, Loot, Ask, 50, R);
}

我不太明白如何在ordersend函数 中使用魔法参数来搜索有这个数字的订单?

而当你使用函数

boolOrderSelect( int index, int select)
SELECT_BY_TICKET选项,我们应该设置哪个索引?

 

要使用魔术师,必须首先设置好,就像你的一样,然后在你巡视时检查它是否存在。

int start()
{
OrderSend (Symbol(), OP_SELL, Loot,Bid, 50, SL, TP,NULL,1001,0,L);
//...
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if(OrderMagic()==1001)
{

Alert ("Ticket =",OrderTicket()); 
OrderClose(OrderTicket(),Loot,Ask,50,R); 
}}}
 

大家好!!!。

我有一个问题:是否可以从专家顾问(MQL4)访问交易历史

也就是说,前一笔交易是无利可图的,而前一笔交易是有利可图的,以此类推,10笔交易深入历史?

这对MM来说是必要的,因为专家顾问在一次大的亏损交易后有一系列的盈利交易。

我有一个想法:在一次失败的交易后,开始增加你的头寸,例如,在三或五次连续的交易中,等待下一个

并等待下一次失败的交易。

 

不要碰所有人,他们还在睡觉,毕竟今天是星期六。

可以组织访问,在代码库中寻找带有控制词 "martingale"(马丁格尔)的EA。

 
Tatar:

大家好!!!。

我有一个问题:是否可以从专家顾问(MQL4)访问交易历史?

也就是说,前一笔交易是无利可图的,而前一笔交易是有利可图的,以此类推,10笔交易深入历史?

这对MM来说是必要的,因为专家顾问在一次大的亏损交易后有一系列的盈利交易。

我有一个想法:在一次失败的交易后,开始增加你的头寸,例如,在三或五次连续的交易中,等待下一个

一个失败的交易。


当然这是有可能的。看这里--你可以根据你的交易条件,为自己取舍基础,并调整它。

下面是一个根据最后一个平仓订单的结果组织头寸的例子(订单历史中最新鲜的一个--在我的系统中就是这样组织的)。

//---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
         continue;
      }
   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if(time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
         
        // Print ("lastProfit = ", NormalizeDouble(lastProfit, 1));
         
       
         
         // Анализ только что закрывшегося ордера
      
         if (lastProfit >= 0.0)
         {.... Здесь действия, при положительном профите ордера...
 .....
......
......
 
 
artmedia70:

double iMA( string symbol,int timeframe,int period,int ma_shift,int ma_method, int applied_price,int shift)

移动平均线的计算。
参数。
标志 - 符号名称,将根据其数据计算指标。NULL表示当前符号。
时限 - 期间。可以是图表 中的一个时期。0表示当前图表的周期。
时间 - 移动平均计算的平均周期。
硕士班 - 指标相对于价格图的转变。
硕士方法 - 平均法。可以是移动平均法 的任何数值。
应用价格 - 使用的价格。可以是任何一个价格常数
移位 - 从指标缓冲区获得的数值的索引(相对于当前条形图,向后移动指定的周期数)。


正如你所看到的ma_shift是 一个整数(将МАшки线向右或向左移动的条数)。而+/-0.21%是双倍 的,所以它将不会起作用。

我明白你想要什么吗?

你对一切都理解得很正确。只是Rumus(外汇俱乐部)有这样的可能性,这个 "信封 "是TS "日内保守剥头 "的基础。我想用MT4做同样的事情。但正如你所解释的那样,并非如此 :)

 

Rimlyanin:

你对一切都理解得很正确。只是Rumus(外汇俱乐部)有这样一个机会,这个 "信封 "是TS "保守日内交易 "的基础。我想用MT4做同样的事情。但正如你所解释的,这不是命运。)

你被误解了。

如果你需要一个信封,MA就会向上和向下移动。

MA是一种向左、向右的转变(如Alligator)。