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

 

让我给你讲讲这个想法的要点。

你需要从当前栏中找到或确定历史上的第一个箭头。

不管它是向上还是向下,都不重要。

(A) 然后把这个发现保存在一个变量或一个标志中。例如,GlobalFlag =-1(如果箭头是向下的),如果是向上的,则+1。

然后价格进一步向前,一些箭头又被画了出来。

在EA中,搜索周期每次都是以新的刻度线开始的,对吗?

循环再次启动,它找到了刚刚画好的箭头,并将其保存在一个变量或一个标志中,即

即A项被执行。

这就是我们的想法。

为什么要为国旗之类的东西费心?

然后这个标志,即箭头将看的地方,将与另一个指标一起使用,以确认信号。

例如,GlobalFlag=+1(箭头向上),另一个指标发出向上的信号,这意味着我们应该进入市场

也就是说,这两个条件在指标中应该是重合的。


你喜欢这个代码吗?

也就是说,我不需要计算哪根蜡烛上的箭头,那里的价格是多少等等。

最主要的是固定箭头的可用性和它的方向。

我是否可以指定true和falce ????,而不是+1和-1?


double DataIndUP, DataIndDN;
int    i, GlobalFlag, nBars = 250 ;  // nBars = количество проверяемых баров вглубь истории

for (i=0; i<nBars; i++) 
{
   DataIndUP = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вверх, i)
   DataIndDN = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вниз, i)
   if (DataIndUP !=EMPTY_VALUE)     // или if (DataIndUP !=0) // найдена стрелка вверх
                                    // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                    // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=+1                 // присвоение значения +1(стрелка вверх)  переменной 
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
if (DataIndDN !=EMPTY_VALUE)     // или if (DataIndDN !=0) // найдена стрелка вниз
                                    // всё зависит от того, что выдаёт буфер при отсутствии стрелки 
                                    // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
      GlobalFlag=-1                 // присвоение значения -1(стрелка вниз) переменной
      Break;                        //выход из цикла, так как  нашлась последняя стрелка
}
 
Tupen:


这是个开始。


因此,进场点A--卖出和买入都是4个点。1种行为的变体--价格下跌--我们将利润固定在,比如说,从进场点开始的5点。- 如果价格上涨,固定利润前的点数也会改变(目前是最小值)。 也就是说,程序将不得不一次下4个订单,))是否可以编程?
 
Roman.:



帖子因淫秽亵渎而被删除

 
Vinin:

帖子因淫秽亵渎而被删除


对不起,慷慨的,无法控制自己。厌倦了维也纳森林的故事,...
 

请写一个有4个订单的程序,我需要看一下演示,看一下反转。

 
Tupen:

请写一个有4个订单的程序。我需要看一下演示,看看我是否能弄清枢轴选项。


请看 "雪崩 "主题--那里的 "一切 "都已经彻底想好了,包括反转选项。

没有必要重新发明车轮。一切都是人们很久以前发明的。阅读、分析、使用并利用它。

你不会很快找到 "它 "自行车(阅读:解决方案)......。

 

你能告诉我为什么不存在周期性吗?在测试器中,专家顾问只开了两笔交易。

外来的int F = 8; //快速МА的周期。
外部int S = 20; //慢速MA的时间段
外置双倍数 Lots = 0.1; // 订单手数
int Slippage = 5; // 以点为单位的滑点。
int Magic = 123; //专家顾问的魔法号码。
int ticketsell;
int ticketbuy;
int start()
{
double MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1);
//终端中没有ticketell的订单,或者它被关闭,并且快速MA低于慢速MA,卖出!
如果 ( (OrderSelect(t ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast < MAslow )
{
// 如果我们已经有了一个相反的订单,买入,让我们关闭它。
如果 ( OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == true )
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage,CLR_NONE)。
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,Magic,0,Red)
}
如果 ( (OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast > MAslow )
{
如果 ( OrderSelect(t ticketsell,SELECT_BY_TICKET,MODE_TRADES) == true )
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE)。
ticketbuy = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,Magic,0,Blue) 。
}
return(0);
}

 

米尔加 试试这个

extern int F = 8; //период быстрой МА
extern int S = 20; //период медл.МА
extern double Lots = 0.1; // лот ордера
int Slippage = 5; // проскальзывание в пп.
int Magic = 123; // магический номер эксперта
int ticketsell;  
int ticketbuy;

int start()
{
   double MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
   double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1); 
   
   ticketsell = -1;
   ticketbuy = -1;
   for (int i = 0; i < OrdersTotal(); i++)
   {
      OrderSelect( i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
      {
         if (OrderType() == OP_SELL) ticketsell = OrderTicket();
         if (OrderType() == OP_BUY)  ticketbuy  = OrderTicket();
      }
    }
   // ордера с тикетом ticketsell в терминале нету ИЛИ он закрылся И быстрая МА ниже медленной, продаем !
   if ( (OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast < MAslow )
   {
      // если у нас при этом был противоположный ордер, бай, его закроем :
      if ( OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE);
      ticketsell = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,0,Magic,0,Red);
   } 
   if ( (OrderSelect(ticketbuy,SELECT_BY_TICKET,MODE_TRADES) == false ) && MAfast > MAslow )
   {
      if ( OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == true )
         OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE);
      ticketbuy = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,0,Magic,0,Blue);
   }
   return(0);
} 
 
谢谢你!
 

我的问题仍未得到解答。

尽管如此,我怎样才能过滤从指标传入的信号数量?例如,专家顾问接受第三号信号开始工作,也就是说,前两个信号被跳过,第三号信号被接受采取行动。正如我在上面写的,我试图用全局变量 来实现它,但它不起作用....。

原因: