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

 
obla4ko:
你不应该像棍子一样思考--这是一个非常微妙的东西:))),虚拟的,我想说,它应该对历史上的欺诈行为作出自然的反应。如果它对擦除没有反应,那么我可以想象它在现实生活中会有多慢--每年100英镑的1万块钱--最多就是100英镑。嗯,把钱放在银行里更容易--他们给的是3-6%!)

)))当然,这更容易!谁能说...// 谁说这很容易呢?)))

有一条出路--去证券交易所。这种事情原则上不会发生在那里。但这样一来...对于所有的--怎么说呢--嗯......。......怪事,你也可以在外汇上下功夫。

当然,最好的方法是在真实账户上测试。如果专家顾问中规定的原则是正确的(这一点完全可以在测试器中检查),那么,将不可抗力措施放在真实账户中,交易将是良好的+。也许不像测试器中那样在+++++++,但还是...)

顺便说一下,从报价流程中削减使指标变得疯狂的差距,有很大的帮助。你可以在我的代码中查看--杀戮之隙。

 

Techno:
obla4ko, создайте переменную типа datetime x, и пусть это будет время открытие бара, на котором произошел стоплосс. А в условии открытия поставте, что (Time[0]!=x). При этом x должно обновляться при новом сработавшем стоплосе. Это первый вариант. И второй как я уже в третий раз пишу, после срабатывания стопа включить ожидание 1 бар, это будет совершенно тоже самое, не логично разве?

我在上一篇文章中发布了负责开仓的那部分代码。你能不能把你在这里说的话写进去--就像他们说的 "最好是看一次比....":)
 

你好!!

在这个主题的第71页,granit77写了一篇非常有趣的文章!

Извините, что встреваю, поделюсь ламерским способом удобной записи множества условий. При наладке легко добавлять/убирать, не заботясь о скобках, и все наглядно. 
if (true
    && StochK_0<StochD_1
    && StochD_1 > 80 
    && cci_0 < cci_1    
    && cci_0 > 100 
    //&& .... а это я пока убрал     
   )

这里有一个样本,并试图做一些事情

if(((Sto_0>Sto_1&&Sto_0< 20)&&(OsMA_0>OsMA_1&&OsMA_0<-P)&&(Macd_0>Macd_1&&Macd_0<-N)))
// это основа
if(true
      &&Sto_0>Sto_1&&Sto_0< 20
      &&OsMA_0>OsMA_1&&OsMA_0<-P
      &&Macd_0>Macd_1&&Macd_0<-N
      )//а это то что получилось

我这样问是因为这很不寻常.....。

 

为什么这样做,并正确计算出将一个变量的值增加10%。

TStartS = MathRound(TStartS+TStartS*0.1);

...但这个人没有。

TStartS = MathRound(TStartS+TStartS/100*PercentTakePr); // где PercentTakePr - внешняя переменная, равна 10, 20, 30, и т.д. ...
有什么区别,我不知道...
 
artmedia70:

为什么这样做,并正确计算出将一个变量的值增加10%。

...但这个人没有。

有什么区别,我不知道...





或者也许是这样的。

TStartS = MathRound(TStartS+(TStartS/100*PercentTakePr)); 
 

有什么问题呢?你只需将字符串分解成子串,而不改变内容。一切都会以同样的方式进行,但它更容易阅读和编辑,只需注释不必要的行。

事实证明,专业人士已经这样写了很久,甚至格式化得更好,所以我发明了自行车。:))

if (true              &&
    StochK_0<StochD_1 && 
    StochD_1 > 80     &&  
    && cci_0 < cci_1  &&   
    && cci_0 > 100 
   )

//((Sto_0>Sto_1&&Sto_0< 20)&&(OsMA_0>OsMA_1&&OsMA_0<-P)&&(Macd_0>Macd_1&&Macd_0<-N))
// Ваш вариант вот так будет выглядеть наиболее прозрачно, на мой взгляд
if (true                         &&
    (Sto_0 >Sto_1  && Sto_0 <20) &&
    (OsMA_0>OsMA_1 && OsMA_0<-P) &&
    (Macd_0>Macd_1 && Macd_0<-N)  
   ) 
 
artmedia70:

为什么这样做,并正确计算出将一个变量的值增加10%。

...但这个人没有。

有什么区别 - 我不明白...





0.1是双数,100是int。

在教科书中查找类型转换

 
Svinozavr:

0.1是双数,100是英寸。

在课本上查找类型转换。

所以我把所有的变量都放在那里了int...事实证明,...哎哟...去它的...继续挖掘...

这就是它的作用。

LastTakeProfitS = MathRound(LastTakeProfitS+LastTakeProfitS/100*PercentTakePr);
...如果你把另一个相同类型的变量放在这里,它就不起作用了......今天早上,它一直在打击我的头脑...
 
obla4ko:

我在上一篇文章中发布了负责开仓的那部分代码。你能不能把你在这里说的话写进去--就像他们说的 "最好是看一次比....":)

这里有一个示意图。没有检查,但应该可以,缺少的部分必须从原始代码中添加。红色标记的数字将增加等待的时间,数字2意味着有一支蜡烛在等待。如果你需要2根蜡烛等待放3根,等等。

bool work=1;int tick;datetime t;
int start()
{
  if(!work){if(t!=iTime(NULL,0,1)){t=iTime(NULL,0,1);tick++;}}
  if(tick==2){work=1;tick=0;} 
   
   time();
   if(OrdersTotal()==0)CheckForOpen();
  //-- code
}
//----
void CheckForOpen()
{
   double ma;
   int    res;
    
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

   if(work && Open[1]>ma && Close[1]<ma)  
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,30,Bid+Stoploss*Point,Bid-Takeprofit*Point,"",MAGICMA,0,Red);
      return;
     }

   if(work && Open[1]<ma && Close[1]>ma)  
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,30,Ask-Stoploss*Point,Ask+Takeprofit*Point,"",MAGICMA,0,Blue);
      return;
     }

}
//----
void time()
{
static datetime time;
    
  if(OrdersHistoryTotal()==0)return;
  for(int i=0;i<OrdersHistoryTotal();i++)
       {
       OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
         if(OrderCloseTime()>time && OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
            {
            time=OrderCloseTime();
            if(OrderProfit()<0)work=0;
            }
       }    
   
}
 
artmedia70:

所以我把所有的变量都放在那里了int...事实证明,...哎哟...去它的...继续挖掘...

这很有效。

...但如果你只是插入另一个相同类型的变量,它就不起作用...今天早上它让我大吃一惊...


它是...我发现...而不是100,是100.0。我想杀了你...
原因: