以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]EA智能交易指标改金字塔交易模型  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=25281)

--  作者:L12345
--  发布时间:2012/9/6 18:39:40
--  [求助]EA智能交易指标改金字塔交易模型
extern double Stoploss=30;///止损点数设置
extern double MoveStop=30;///移动止盈设置
extern int Maxslippage=5;//最大滑点数
extern bool FollwStop=true; //是否开启追踪止盈止损
extern double FollwMoveStop=0;///移动止盈点数

 

int  tempStopBP=0;
int  tempStopSP=0;


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
 
  int con;
 
 int allLots= OrdersTotal();
 
    if(allLots>0){
    for(con=0;con<allLots;con++){
   OrderSelect(con, SELECT_BY_POS, MODE_TRADES);
                                       
   double tempStopPrice=0;

    //////-------多单
   if(OrderType()==OP_BUY) 
                            

               //  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Stoploss,OrderTakeProfit(),0,Green);
 
                  ///启动止损上移 追踪止损,固定止损 不变,回踩,止损不变、价格上移,止损上移,
                  if(iClose(OrderSymbol(),0,0)-OrderOpenPrice()>MarketInfo(OrderSymbol(),MODE_POINT)*MoveStop){
              
                     if((iClose(OrderSymbol(),0,0)-OrderStopLoss())/MarketInfo(OrderSymbol(),MODE_POINT) > tempStopBP )
                    // Print("tempStopBP========>>="+tempStopBP);
                        RefreshRates();
                    bool modify_b=    OrderModify(OrderTicket(),OrderOpenPrice(), iClose(OrderSymbol(),0,0) -MarketInfo(OrderSymbol(),MODE_POINT)*(MoveStop+Stoploss),OrderTakeProfit(),0,Green);
         tempStopBP= (iClose(OrderSymbol(),0,0)-OrderStopLoss())/MarketInfo(OrderSymbol(),MODE_POINT);
                           if(modify_b) {
                          Print("多单向上自动设置止成功");
                            else{
                            Print("多单向上自动设置止损失败"+GetLastError());
                            }
                       }
                      
                      
                
                
                 if(iClose(OrderSymbol(),0,0)-OrderOpenPrice()<(-1* MarketInfo(OrderSymbol(),MODE_POINT)*Stoploss))
     {
               //  Sleep(10000);   //---- 刷新价格数据
                 RefreshRates();
                if( OrderClose(OrderTicket(), OrderLots(),iClose(OrderSymbol(),0,0)-(MarketInfo(OrderSymbol(),MODE_POINT)),Maxslippage,Red))
      {
                Print("多单止损成功");
     }else{
        Print("多单止损失败"+GetLastError());
          }
                    }
               }
    
   /////////////////------------空单
   if(OrderType()==OP_SELL) 
                            
 
 
 
  ///启动止损上移 追踪止损,固定止损 不变,回踩,止损不变、价格上移,止损上移,
                  if(OrderOpenPrice()-iClose(OrderSymbol(),0,0)>MarketInfo(OrderSymbol(),MODE_POINT)*MoveStop){
              
                     {
                         RefreshRates() ;
                    bool modify_s=    OrderModify(OrderTicket(),OrderOpenPrice(), iClose(OrderSymbol(),0,0)+MarketInfo(OrderSymbol(),MODE_POINT)*(MoveStop+Stoploss),OrderTakeProfit(),0,Green);
                           tempStopSP=  (OrderOpenPrice()-iClose(OrderSymbol(),0,0))/MarketInfo(OrderSymbol(),MODE_POINT);
                           if(modify_s) {
                             Print("空单单向下自动设置止成功");
                            else{
                            Print("空单单向下自动设置止损失败"+GetLastError());
                            }
                        }
                       }
                      
                      
                      
                
                
               
                if((iClose(OrderSymbol(),0,0)-OrderOpenPrice())  >(MarketInfo(OrderSymbol(),MODE_POINT)*Stoploss))
                {
                 RefreshRates();
                     if(OrderClose(OrderTicket(), OrderLots(),iClose(OrderSymbol(),0,0)+(MarketInfo(OrderSymbol(),MODE_POINT)),Maxslippage,Red))
                     {
                        Print("空单止损成功==============");
         }else{
            Print("空单止损失败========="+GetLastError());
        }

                }
               }
      }
   return(0);
  }
   return(0);
  }


--  作者:jinzhe
--  发布时间:2012/9/7 9:04:21
--  
不要老是帖一大段代码出来,你说下这段代码的思路