任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 350

 
Forexman77:

在图片中,我已经用箭头标出了输出的位置。我不明白问题出在哪里。我们进去了,记住了时间。

然后,当时间比进场时长出一个周期,且价格低于3天MA最小值时退出。

代码如下。

你有什么建议?

在Ascus上接近卖出!它是更高的!询问-出价=传播。

纠正这一行的代码。

if  (Bid <= MA_2_t)

// на

if  (Ask <= MA_2_t)

然后,它将根据需要关闭,但它可能在任何时候逆转。我们必须知足常乐!

 
Forexman77:


在图片中,我已经用箭头标出了输出的位置。我不明白问题出在哪里。我们进去了,记住了时间。

然后,当时间比进场时长出一个周期,且价格低于3天MA最小值时退出。

代码如下。

你怎么看?


我的意思是,如果能贴出截图,让你看到价格和时间框架就好了。也许在M1上有跳动,服务器只是没有时间及时处理订单。


而不是t=Time[0];最好使用OrderOpenTime()。

 
evillive:

如果不是太秘密的话,我的意思是公布截图,你可以看到价格和时间框架,那就好了。也许在M1上有跳动,服务器只是没有时间来处理订单。


使用OrderOpenTime()而不是t=Time[0];。

Eureka!我明白为什么。

信号几乎总是>0.006,所以t=Time[0];一直在更新,交易没有关闭。

我把t=Time[0];放在宣布开仓事实的块中。

 

大家好,正在测试的EA对缺口的表现如何?也就是说,在测试中它显示出良好的利润,但在演示中它已经连续两天跳空了:()。

 

大家好!

通过跨越两个EMA值制作了EA,这是我的第一个EA,我担心我犯了一些愚蠢的错误,所以我请专业人士审查代码,如果有什么不对,请给我一些建议。

这个EA应该在比特币交易所交易,价格可能每天跳动30%,所以止损和止盈应该是价格的百分比。

我已经在模拟账户上测试过了,似乎很有效,但我不敢在真实账户上使用,最低手数约为7美元,而且美分账户没有经纪人。

我还没有附加跟踪止损,我打算不以零来比较EMA差值,而是以一些小数值来比较,以避免在曲线平行运行时频繁交易。

这个程序大部分是由从实例和教程中摘取的零碎部分组成的,因此有一种担心,即我在把它放在一起时可能会在某个地方搞砸了。

变量。

#property copyright "me"
#property link      "killnosock.net"
extern int SlowEma = 21;
extern int FastEma = 10;
extern int MaxRisk = 100;// % депо которое будет использоваться для открытия ордера
extern int  TakeProfit=100;
extern int  StopLoss=100;
extern int Slippage = 10;

int LastBars = 0;

int init(){return(0);}
int deinit() {return(0);}

该函数定义了地段大小。

double GetLot(int Risk)
{double Free    =AccountFreeMargin();
 double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
 double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
 double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
 double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
 double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;
 if(Lot<Min_Lot) Lot=Min_Lot;
 if(Lot>Max_Lot) Lot=Max_Lot;
 if(Lot*One_Lot>Free) {
 Alert(" free= ", AccountFreeMargin()," for one lot= ", MarketInfo(Symbol(),MODE_MARGINREQUIRED)," lot= ", Lot);
 return(0.0);}
return(Lot);}

我们在这里开一个订单。

int NewOrder(int Cmd,double Lot)
{double TP=0; //takeprofit
 double SL=0; //stoploss
 double PR=0; //price
 color clr = CLR_NONE;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=Ask + Ask*TakeProfit/100;
    if(StopLoss>0) SL=Ask - Ask*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Green;}
 if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=Bid - Bid*TakeProfit/100;
    if(StopLoss>0) SL=Bid + Bid*StopLoss/100;
    if(SL<0) SL = 0;
    if(TP<0) TP = 0;
    clr = Red;}
 int tic=OrderSend(Symbol(),Cmd,Lot,PR,Slippage,SL,TP,"",0,0,clr);
 if(tic<0) Print("Open order error: ",GetLastError());
return(tic);}

这里我们关闭1个或所有的订单

//CloseOrder
void CloseOrder()
{double PR=0;
 while(!IsTradeAllowed()) Sleep(10);
 RefreshRates();
 if(OrderType()==OP_BUY)  PR=Bid;
 if(OrderType()==OP_SELL) PR=Ask;
 if(!OrderClose(OrderTicket(),OrderLots(),PR,Slippage,CLR_NONE))
   Print("Order close error: ",GetLastError());
return;}

//Close all Orders
void CloseAllOrders()
{
  for(int i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
      CloseOrder();
     }
return;}

这个函数计算了两个EMA的差值

double EmaDiff(int shift)
   {
      double difference;
      difference = iMA(Symbol(),0,FastEma,0,MODE_EMA,PRICE_CLOSE,shift)
                 - iMA(Symbol(),0,SlowEma,0,MODE_EMA,PRICE_CLOSE,shift);
      return(difference);
   }

这里是程序的主体

int start()
  {
double Lot;
    // действуем, когда открывается новая свечка
    if (LastBars == Bars) return(0);
    else LastBars = Bars;
      {         
         if ((EmaDiff(1) > 0) && (EmaDiff(2) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_BUY,Lot);
            }
            
         if ((EmaDiff(2) > 0) && (EmaDiff(1) < 0))
            {
               CloseAllOrders();
               Lot = GetLot(MaxRisk);
               NewOrder(OP_SELL,Lot);
            }                    
      }
   return(0);
  }
 

亲爱的先生们,大家好!!。

帮我做出来的交易!!!。有一套交易,我从一个网站上下载的,那里有一个比赛,有10000美元的人一个月或一个星期,我不记得了,赚了300000美元!我怎么能知道他在哪里完成了交易!!?开盘时间、价格、地段、货币对都在那里!!!。

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


有这么多的交易,我不知道他在哪里把它们都关闭了!"。


结果显示截至2013-08-29 14:02:05(EET)


交易 时间 类型 手数 符号 价格 交换 盈利

272984 2013-08-05 07:58:50 出售 1.00 euraud 1.49556 0 0

272986 2013-08-05 07:58:56 出售 1.00 euraud 1.49553 0 0

272988 2013-08-05 07:59:03 出售 1.00 euraud 1.49549 0 0

272999 2013-08-05 07:59:57 出售 1.00 euraud 1.49534 0 0

273002 2013-08-05 08:00:02 出售 1.00 euraud 1.4954 0 0

273004 2013-08-05 08:00:07 出售 1.00 euraud 1.4954 0 0

284429 2013-08-05 16:47:27 购买 1.00 euraud 1.48839 0 628.85

284432 2013-08-05 16:47:33 购买 1.00 euraud 1.48838 0 629.71

284433 2013-08-05 16:47:37 购买 1.00 euraud 1.48843 0 625.28

284435 2013-08-05 16:47:43 购买 1.00 euraud 1.48857 0 612.81

284439 2013-08-05 16:47:47 购买 1.00 euraud 1.48854 0 615.46

284442 2013-08-05 16:47:50 购买 1.00 euraud 1.48859 0 611.01

284443 2013-08-05 16:47:51 购买 1.00 euraud 1.48859 0 0

284447 2013-08-05 16:48:01 购买 1.00 audusd 0.89056 0 0

284449 2013-08-05 16:48:09 出售 1.00 euraud 1.48735 0 -110.44

284451 2013-08-05 16:48:21 购买 1.00 audusd 0.89061 0 0

284454 2013-08-05 16:48:25 购买 1.00 audusd 0.8906 0 0

284458 2013-08-05 16:48:30 购买 1.00 audusd 0.89058 0 0

284461 2013-08-05 16:48:34 购买 1.00 audusd 0.89051 0 0

284465 2013-08-05 16:48:39 购买 1.00 audusd 0.89052 0 0

284469 2013-08-05 16:48:43 购买 1.00 audusd 0.89053 0 0

284472 2013-08-05 16:48:47 购买 1.00 audusd 0.89051 0 0

284475 2013-08-05 16:48:51 购买 1.00 audusd 0.89056 0 0

284479 2013-08-05 16:48:55 购买 1.00 audusd 0.89056 0 0

284483 2013-08-05 16:48:59 购买 1.00 audusd 0.89056 0 0

284487 2013-08-05 16:49:03 购买 1.00 audusd 0.89058 0 0

284491 2013-08-05 16:49:08 购买 1.00 audusd 0.89053 0 0

284492 2013-08-05 16:49:12 购买 1.00 audusd 0.89053 0 0

286130 2013-08-05 16:51:55 买入停止 1.00 audusd 0.8915 0 0

288418 2013-08-05 16:52:05 买入停止 1.00 audusd 0.89255 0 0

293964 2013-08-05 16:52:14 买入停止 1.00 audusd 0.8935 0 0

299297 2013-08-05 16:52:26 买入停止 1.00 audusd 0.89459 0 0

299482 2013-08-05 16:52:35 买入停止 1.00 audusd 0.89553 0 0

299533 2013-08-05 16:52:53 买入停止 1.00 audusd 0.89655 0 0

299595 2013-08-05 16:53:02 买入停止 1.00 audusd 0.89703 0 0

300040 2013-08-05 16:53:36 买入停止 1.00 audusd 0.89751 0 0

300096 2013-08-05 16:53:46 买入停止 1.00 audusd 0.898 0 0

300151 2013-08-06 07:54:49 卖出 1.00 audusd 0.89756 4.36 519.04

300153 2013-08-06 07:54:53 出售 1.00 audusd 0.89749 4.36 512.04

300154 2013-08-06 07:54:58 出售 1.00 audusd 0.89743 4.36 506.04

300156 2013-08-06 07:55:01 出售 1.00 audusd 0.89738 4.36 501.04

300158 2013-08-06 07:55:05 出售 1.00 audusd 0.89736 4.36 499.04

300160 2013-08-06 07:55:11 出售 1.00 audusd 0.89772 4.36 535.04

300161 2013-08-06 07:55:15 出售 1.00 audusd 0.89771 4.36 534.04

300163 2013-08-06 07:55:19 出售 1.00 audusd 0.89765 4.36 528.04

300167 2013-08-06 07:55:36 出售 1.00 audusd 0.89733 4.36 496.04

300169 2013-08-06 07:55:40 出售 1.00 audusd 0.89733 4.36 496.04

300171 2013-08-06 07:55:44 出售 1.00 audusd 0.89735 4.36 498.04

300173 2013-08-06 07:55:49 出售 1.00 audusd 0.89732 4.36 495.04

300178 2013-08-06 07:55:52 出售 1.00 audusd 0.89725 4.36 488.04

300181 2013-08-06 07:55:56 出售 1.00 audusd 0.89714 4.36 477.04

 
FEAR:

亲爱的先生们,大家好!!。

帮我做出来的交易!!!。有一套交易,我从一个网站上下载的,那里有一个比赛,有10000美元的人一个月或一个星期,我不记得了,赚了300000美元!"。我怎么能知道他在哪里完成了交易!!?开盘时间、价格、地段、货币对都在那里!!!。

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

有这么多的交易,我不知道他在哪里把它们都关闭了!"。

没有办法,他们没有规定关闭 时间和价格,没有免费的东西))))。
 
evillive:
没有办法,他们故意不指定收盘价,没有free())


我明白,但有很多,有价格,有买入或卖出,比如说。


284429 2013-08-05 16:47:27 购买 1.00 euraud 1.48839 0 628.85

价格是1.48839货币对-euraud,地段1经纪人5马克!!!。获利628,即价格上涨了628点!!!。在第1批!!我的意思是,如果你能看一下历史,我不明白,说实话,时间几乎是17:00,但价格比这个1.48839低得多!!!。即使这是收盘价,我也算上了7000点,我不明白怎么会这样?

 
FEAR:


我明白,但有很多,有价格,有买入或卖出,比如说。


284429 2013-08-05 16:47:27 购买 1.00 euraud 1.48839 0 628.85

价格是1.48839货币对-euraud,地段1经纪人5马克!!!。获利628,即价格上涨了628点!!!。在第1批!!我的意思是,如果你能看一下历史,我不明白,说实话,时间几乎是17:00,但价格比这个1.48839低得多!!!。即使是收盘价,我也计算了7000点,我不明白这怎么可能?


你在哪里计算过7000点?这是开盘价,但即使是收盘价,一个价格也不足以计算那里的东西,你仍然需要两个价格。我认为这只是一个假象,除非比赛一直持续到12月18日,那时这个头寸可能会以630点的利润平仓。但在此之前,他将被迫坐等约-830点的缩减(对4zn而言),不是很聪明,策略是如此的惨淡无光......。


在真实账户上我会失去它,当我有大量的虚拟资金时,它在演示中是有效的))))。

 

evillive,下午好,谢谢你给我指出正确的方向!!!。



r772ra,你好,感谢你解释了错误展示了更正后的代码(我认为这是学习的最好方式(实践(-做理论,我的朋友,生命之树常青。-)))。

原因: