编码帮助 - 页 705

 


double BU1=iMA(Symbol(),0,ShortSma,0,MODE_SMA,PRICE_CLOSE,i+1)。

double BL1=iMA(Symbol(),0,LongSma,0,MODE_SMA,PRICE_CLOSE,i);

string SBUY="false";string SSEL="false";

if(BU1<Close[1]&&BL1<Close[1])SBUY="true";if(BL1>Close[1]&&BU1>Close[1])SSEL="true";

现在可以工作了,在TP..... 之后,贸易出现了问题。

谢谢你的帮助,Mladen.

 

你好,Mladen先生

如何翻译这个词。

http://forexsystemsru.com/1075962-post327.html

聚类分析


注意


 

Mr mladen:

你能不能把它做成MTF

致以敬意

附加的文件:
 

嗨,亲爱的编码员。

我可能有一个简单的问题,但我现在被卡住了。

我的EA开仓和买卖订单 都没有问题,但当它涉及到

SIGNAL_CLOSEBUY或SIGNAL_CLOSESELL时,却没有关闭订单。

这里我使用RSI_Filter作为触发器来关闭买入或卖出订单。

我已经复制了我的代码,如果有人能看一下,我将非常高兴。

谢谢你的帮助。

#define SIGNAL_NONE      0
#define SIGNAL_BUY       1
#define SIGNAL_SELL      2
#define SIGNAL_CLOSEBUY  3
#define SIGNAL_CLOSESELL 4

extern int    MaxShortTrades   = 1;
extern int    MaxLongTrades    = 1;
int           Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,1);
      NLD2 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,2);        

// Amount of long / short trades      
int longs  = 0;
int shorts = 0;
double j;
      
      for(j=OrdersTotal()-1;j>=0; j--)
        {
         if(OrderType()==OP_BUY)  longs++;  // Check # of long trades.
         if(OrderType()==OP_SELL) shorts++; // Check # of short trades
        }
                
// place orders
if(longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter>55) Order  = SIGNAL_BUY;        
if(shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter<45) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
              {
               dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
               if(EachTickMode) TickCheck = True;
               if(!EachTickMode) BarCount = Bars;
               return(0);
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter>50) Order=SIGNAL_CLOSESELL;

if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  return(0);
                 }
 
tfi_markets:

嗨,亲爱的编码员。

我可能有一个简单的问题,但我现在被卡住了。

我的EA开仓和买卖订单都没有问题,但当它涉及到

SIGNAL_CLOSEBUY或SIGNAL_CLOSESELL时,却没有关闭订单。

这里我使用RSI_Filter作为触发器来关闭买入或卖出订单。

我已经复制了我的代码,如果有人能看一下,我将非常高兴。

谢谢你的帮助。

#define SIGNAL_NONE      0
#define SIGNAL_BUY       1
#define SIGNAL_SELL      2
#define SIGNAL_CLOSEBUY  3
#define SIGNAL_CLOSESELL 4

extern int    MaxShortTrades   = 1;
extern int    MaxLongTrades    = 1;
int           Order            = SIGNAL_NONE;

// RSI Filter
double RSIfilter=iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,BarShift);

// Trade Signal Indicator
double NLD1,NLD2;
      NLD1 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,1);
      NLD2 = iCustom(NULL,0,"indicator",0,Length,0,0,1,0,0,0,2);        

// Amount of long / short trades      
int longs  = 0;
int shorts = 0;
double j;
      
      for(j=OrdersTotal()-1;j>=0; j--)
        {
         if(OrderType()==OP_BUY)  longs++;  // Check # of long trades.
         if(OrderType()==OP_SELL) shorts++; // Check # of short trades
        }
                
// place orders
if(longs < MaxLongTrades && NLD1 > NLD2 && RSIfilter>55) Order  = SIGNAL_BUY;        
if(shorts < MaxShortTrades && NLD1 < NLD2 && RSIfilter<45) Order = SIGNAL_SELL;
   

// Signal Begin(Exit Buy)
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if(Order==SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
              {
               dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
               if(EachTickMode) TickCheck = True;
               if(!EachTickMode) BarCount = Bars;
               return(0);
              }

// Signal Begin(Exit Sell)                                                              
if (RSIfilter>50) Order=SIGNAL_CLOSESELL;

if(Order==SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars!=BarCount))))
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  return(0);
                 }

在继续进行之前,你必须解决两个问题。

  1. 你首先要选择一个订单--你在试图关闭订单之前从未选择过该订单
  2. 你没有检查你想关闭的订单的类型--检查类型,然后根据订单类型 采取进一步行动--根据订单类型将关闭价格调整为买入价或卖出价。
 
mladen:

在继续进行之前,你必须解决两个问题。

  1. 你首先要选择一个订单--在试图关闭订单之前,你从未选择过该订单
  2. 你没有检查你想关闭的订单的类型--检查类型,然后根据订单类型采取进一步行动--根据订单类型,将收盘价调整为买入价或卖出价。

亲爱的Mladen,

非常感谢你提出的有益建议。

如果我没有理解错的话,我需要实现以下的代码

选择一个 "buy_ticket",EA需要关闭。这段代码还没有测试,属于 "伪状态"。

int buy_ticket=0;
int sell_ticket=0;
int ticket;

// Iterate through tickets
for(int i=OrdersTotal()-1; i>=0; i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
         {
           if(OrderType()== OP_BUY)
              buy_ticket=OrderTicket();
            else
            if(OrderType() == OP_SELL)
               sell_ticket=OrderTicket();
           }
        }

// Close Ticket with trigger
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if(Order==CLOSE_BUY && buy_ticket!=0)
         {
         if(OrderSelect(buy_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
      else
      if(Order==CLOSE_SELL && sell_ticket!=0)
         {
         if(OrderSelect(sell_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
    
 
tfi_markets:

亲爱的Mladen,

非常感谢你的有益建议。

如果我没有理解错的话,我需要实现以下的代码

选择一个 "buy_ticket",EA需要关闭。这段代码还没有测试,属于 "伪状态"。

int buy_ticket=0;
int sell_ticket=0;
int ticket;

// Iterate through tickets
for(int i=OrdersTotal()-1; i>=0; i--)
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
         {
           if(OrderType()== OP_BUY)
              buy_ticket=OrderTicket();
            else
            if(OrderType() == OP_SELL)
               sell_ticket=OrderTicket();
           }
        }

// Close Ticket with trigger
if (RSIfilter<50) Order=SIGNAL_CLOSEBUY;

if (RSIfilter>50) Order=SIGNAL_CLOSESELL; 

                
if(Order==CLOSE_BUY && buy_ticket!=0)
         {
         if(OrderSelect(buy_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
      else
      if(Order==CLOSE_SELL && sell_ticket!=0)
         {
         if(OrderSelect(sell_ticket,SELECT_BY_TICKET))
            {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrDodgerBlue))
               Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());
            }
         }
    

你在同一时间只开了一个订单(我指的是相同的魔法和符号)吗?

如果是的话,那么它将会工作。

 

亲爱的朋友们。

附件中的EA不断地开出固定手数的订单(它开出的所有订单都是0.10)。

我不能改变或控制 订单的手数!


在设置中可以看到"Lots " "MaximumRisk " 的值,但它们对订单的手数没有作用。

你能帮助我吗?

附加的文件:
 

你好,Mladen先生

你能不能做一个类似于这个图片的空的子窗口

注意

 

嗨,Mladen,我已经下载了你的

stepma_pdf_4_4.ex4以及histgram。

将它们复制到MT4中。把它们钻到图表窗口中

我得到以下信息,请看图片。

你能告诉我如何使用你的指标吗?


李亚


ps.同样的情况发生在: averages_-_mtf__alerts_7_4.ex4和histogram上。

附加的文件:
warning.jpg  20 kb