比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

高手帮忙,搞了个EA,只有3档止损位,麻烦 帮忙加成5档 ...

  [复制链接]
576 13
qq1850141942 发表于 2014-10-30 18:51:09 | 只看该作者 |阅读模式 打印 上一主题 下一主题
高手帮忙,本人在论坛里搞了个EA,只有3档止损位,麻烦 帮忙加成5档   ... 高手,帮忙下  本人对程序不懂!!
需要改成 如下图    附上源码!
//+------------------------------------------------------------------+
//|                                                   TakeProfit.mq4 |
//|  Modded slightly by verbtheory for verbtheory's day break system |
//|                               Copyright ?2006, Taylor Stockwell |
//|                                               stockwet@yahoo.com |
//|                                                    Version: 2.4  |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2006, Taylor Stockwell"
#property link      "stockwet@yahoo.com"
/*
Updates:
   11/2/2006:: Fixed bug that caused the sl var to be set to 1 when a pending
               order was > than the First_Stop_Target value.
   1/23/2007:: Fixed pip calculation. The old way of calculating pips could be
               off by 1 pip, resulting in missed TP or move stops. The new
               calculation is more accurate.
   4/07/2009:: Adding trailing stop, enhancing shortly.
*/
//=============== VARS external
extern int First_Target = 50;
extern int Target_Increment = 25;
extern double Close_Lots = 0;
extern bool Move_Stops = true;
extern int First_Stop_Target = 80;
extern int First_Stop = 20;
extern int Second_Stop_Target = 350;
extern int Second_Stop = 200;
extern int Third_Stop_Target = 650;
extern int Third_Stop = 500;
extern bool Use_Max_Loss = true;
extern int Max_Loss = 350;
extern int Magic_Number=0;
//=============== VARS internal
int nextTP;
bool sl;
int range = 5;
int multiplier;
// OrderType == 1 is OP_SELL
//=============== FUNCTION init
int init()
  {
   sl=0;
   nextTP = First_Target;
   getMaxLoss();
  }
//== end function
//=============== FUNCTION deinit
int deinit()
  {
//----
   sl=0;
   nextTP = First_Target;
//----
   return(0);
  }
//== end function
//========== FUNCTION Start
int start()
  {
//----
   getOpenOrders();
   getSpread();
   //Comment(sl);
//----
   return(0);
  }
//== end function
//========== FUNCTION getPipValue
double getPipValue(double ord,int dir)
{
   double val;
   RefreshRates();
   if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits));
   else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));
   val = val/Point;
   return(val);   
}
//== end function
int getSpread()
{
   int spread=MarketInfo(Symbol(),MODE_SPREAD);
   return(spread);
}
int getMaxLoss()
{
   int calcMaxLoss;
   calcMaxLoss = Max_Loss;
   return(calcMaxLoss);
}
//========== FUNCTION getOpenOrders
void getOpenOrders()
{
   int nsl, nsd;
   string mngMagic;
   int totalorders = OrdersTotal();
   for(int j=0; j 0) killTrade(val,OrderTicket());
            if(Move_Stops) checkStops(val,OrderTicket());
            takeProfit(val,OrderTicket());            
         }
         if(Magic_Number == 0)
         mngMagic = "All "+Symbol()+" trades.";
         else
         mngMagic = "Trades with magic number = "+Magic_Number;
         if(sl==0)
            {
               nsl = First_Stop_Target;
               nsd = First_Stop;
            }
          else
            {
               nsl = Second_Stop_Target;
               nsd = Second_Stop;
            }
         //RefreshRates();
         Comment("Order Open: ",OrderOpenPrice(),
         "\nPip Count: ", val,
         "\nNext Stop Target: ",nsl,
         "\nNext Stop Differential: ", nsd,
         "\nNext TP: ", nextTP,
         "\nSL: ",sl,
         "\nMax Loss: ", getMaxLoss(),
         "\nManaging: ",mngMagic);
     }  
}
//========== FUNCTION takeProfit
void takeProfit(int pips, int ticket)
{
   if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
   {
      if(pips >= nextTP && pips = First_Stop_Target && pips = Second_Stop_Target)
   {
      if(pips >= Second_Stop_Target)
      {
         moveStops(ticket,Second_Stop);
      }
   }
   else if(sl==1 || pips >= Third_Stop_Target)
   {
      if(pips >= Third_Stop_Target)
      {
         moveStops(ticket,Third_Stop);
      }
   }
}
//== end function
//========== FUNCTION moveStops
void moveStops(int ticket,int stopDiff)
{
   if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
   {
      Print("moveStops called ",ticket, " ",stopDiff);
      if(OrderType()==1)
      {
      OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-stopDiff*Point, OrderTakeProfit(),0,Plum);
      sl=1;
      }
      else
      {
      OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()+stopDiff*Point, OrderTakeProfit(),0,Plum);
      sl=1;
      }
   }
}
//== end function
//========== FUNCTION killTrades
void killTrade(int pips, int ticket)
{
   if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
   {
      if(pips <= -1*getMaxLoss())
      {
         if(OrderType()==1) OrderClose(ticket,OrderLots(),Ask,3,Red);     
         else OrderClose(ticket,OrderLots(),Bid,3,Red);
      }      
   }
}
//== end function
    需要加上  fourth stop target  3000
                    fourth stop   2000
                fifth stop target   5000
                fifth  stop        4000
                  谢谢了
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0

精彩评论13

跳转到指定楼层
沙发
olp 发表于 2014-10-30 18:58:53 | 只看该作者
看看路过
板凳
digit 发表于 2014-10-30 19:07:33 | 只看该作者
只有三档?现在都至少五档吧:
地板
KSXJM 发表于 2014-10-30 20:11:23 | 只看该作者

真牛。。。。。。
5#
george2100 发表于 2014-10-30 18:58:00 | 只看该作者
11111111111111
6#
ivan29 发表于 2014-10-30 20:27:51 | 只看该作者
打酱油的这么多 ,高手呢 ?
7#
 楼主| qq1850141942 发表于 2014-10-30 20:47:14 | 只看该作者
aaaaaaaaaaaaaa
8#
li2816 发表于 2014-10-30 21:46:31 | 只看该作者
LAIKANKAN
9#
ajie427 发表于 2014-10-31 10:36:18 | 只看该作者

打酱油的那么多,真的高手没见过,我需要一个真真正正的高手来帮我!!!
10#
 楼主| qq1850141942 发表于 2014-10-31 13:55:15 | 只看该作者
路过赚分
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1