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

 
TarasBY:

谁能告诉我问题出在哪里?


在我们掌握指标本身之前,没有人会告诉我们。
 
Vinin:


这是有可能的。当然,如果经纪公司支持它的话。

请记住,在测试器中,你可以在当前工具中开仓,而对其他工具有一些限制


这一系列的限制是否适用于网上交易?如果没有,那就很悲哀了。这段代码没有打开任何东西。

int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Выставили ордер Buy";//комментарий ордера
string comS = "Выставили ордер Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD


int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      double bidCAD=MarketInfo("USDCAD",MODE_BID);
      double askCAD=MarketInfo("USDCAD",MODE_ASK);
      double bidAUD=MarketInfo("AUDUSD",MODE_BID);
      double askAUD=MarketInfo("AUDUSD",MODE_ASK);


........................


//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }
 
mInvIn:

大家好。

请告诉我:在对历史进行测试后,是否有办法获得每笔交易的评论或神奇的数字,或任何其他方法来识别交易?让我试着解释一下这个意思。假设我编程了一些模式,并在历史上运行了EA,结果,正如它经常发生的那样,是损失。有意思的是,看看哪些模式和在什么样的市场条件下会越来越多地亏损,而哪些(如果有的话)至少显示出一些利润。

提前感谢您的回答。

让它变得简单。将模式编号设为外部参数。专家顾问应该只按这种模式开仓。而如果你指定为零,比如说,它以任何模式打开。你按所有模式运行优化。你可以得到总结性的图片和模式分类。
 
需要一个像"新酒吧"一样的 "新秩序 "功能。该函数应该只在开仓后的一个刻度上显示 "true"。即在未结订单数量向上变化的时刻。请帮助我
 
Techno:
是否存在对历史订单的覆盖?
不,只有市场订单和挂单。
 
IgorM:


有这样一个问题--我也有这样的问题,如果专家顾问每年做很多交易--也许为最终结果的输出存储了太多的数据,或者也许指标缓冲区吃掉了内存。

我看到--我不知道,请记住--对于一般情况,测试是10年的,最好是优化一年,然后选择最佳参数

谢谢你,伊戈尔!直觉上,我正在这样做。我想这可能是一个较长的时间内不失去速度的可能性?
 

大师们请指点迷津,我已经绞尽脑汁了,我觉得这应该很容易,我已经试过两种方法了......我不能...

问题的本质。

我在写一个指标,它在缓冲区抓点,总共应该有4个,正常情况下是2个集合,数值应该是按条计算的,要么是零,要么是,价格,这里一切正常,但是我们还需要2个缓冲区,以这种方式放数值:如果发现缓冲区0的非零值,那么检查缓冲区0中的前一个非零值,如果少,那么当前值就写到缓冲区2。我想让它在飞行中计算,而不是通过搜索和循环,这是我的第一个指标,我写过专家顾问和脚本,但我对指标和它的缓冲区迷失了方向。

...................

Counted_bars=IndicatorCounted(); // 计算的条数

i=Bars-Counted_bars-1; // 第一个未计算的索引

while(i>1) // 在未计数的小节上循环。

{

如果 (..............) // 在这里一切都能正常工作

{

Buf_0[i]=High[i]。

{ 这里我们要计算Buf_2[i] }

}

如果 (..............) //在这里一切也能正常工作

{

Buf_1[i]=Low[i]。

{但这里我们要计算Buf_3[i] }

}

i--;

//计算下一个条形图的索引

}

//--------------------------------------------------------------------

return; // 退出特殊函数start()

}

//--------------------------------------------------------------------

 
什么情况更经常发生--买入或卖出?在全球范围内的意义。
 
ChachaGames:

大师们请指点迷津,我已经绞尽脑汁了,我觉得这应该很容易,我已经试过两种方法了......我不能...

问题的本质。

我在写一个指标,它在缓冲区抓点,总共应该有4个,正常情况下是2个集合,数值应该是按条计算的,要么是零,要么是,价格,这里一切正常,但是我们还需要2个缓冲区,以这种方式放数值:如果发现缓冲区0的非零值,那么检查缓冲区0中的前一个非零值,如果少,那么当前值就写到缓冲区2。我想让它在飞行中计算,而不是通过搜索和循环,这是我的第一个指标,我写过专家顾问和脚本,但我对指标和它的缓冲区迷失了方向。

...................

Counted_bars=IndicatorCounted(); // 计算的条数

i=Bars-Counted_bars-1; // 第一个未计算的索引

while(i>1) // 在未计数的小节上循环。

{

如果 (..............) // 在这里一切都能正常工作

{

Buf_0[i]=High[i]。

{ 这里我们要计算Buf_2[i] }

}

如果 (..............) //在这里一切也能正常工作

{

Buf_1[i]=Low[i]。

{但这里我们要计算Buf_3[i] }

}

i--;

//计算下一个条形图的索引

}

//--------------------------------------------------------------------

return; // 退出特殊函数start()

}

//--------------------------------------------------------------------

粗略的说,我怎样才能找出缓冲区中上一个非零值的索引?
 
_SS_:
什么情况更经常发生--买入或卖出?在全球范围内的意义。
确切地说,每笔销售的一半都有一个不同的买家:)
原因: