编辑quick-fix
消息后,我试图重建ExecutionReport
jar。
但是它给出了一个错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.
8.0:compile (default-compile) on project quickfixj-examples-executor: Compilatio
n failure: Compilation failure:
[ERROR] /C:/Users/admin/Desktop/QuickFIxJarMaker/quickfixj-master/quickfixj-mast
er/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Applicat
ion.java:[272,49] no suitable constructor found for ExecutionReport(quickfix.fie
ld.OrderID,quickfix.field.ExecID,quickfix.field.ExecTransType,quickfix.field.Exe
cType,quickfix.field.OrdStatus,quickfix.field.Symbol,quickfix.field.Side,quickfi
x.field.LeavesQty,quickfix.field.CumQty,quickfix.field.AvgPx)
[ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport() is not appl
icable
[ERROR] (actual and formal argument lists differ in length)
[ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport(quickfix.fiel
d.OrderID,quickfix.field.ExecType,quickfix.field.OrdStatus,quickfix.field.Leaves
Qty,quickfix.field.CumQty,quickfix.field.AvgPx) is not applicable
[ERROR] (actual and formal argument lists differ in length)
[ERROR] /C:/Users/admin/Desktop/QuickFIxJarMaker/quickfixj-master/quickfixj-mast
er/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Applicat
ion.java:[280,62] no suitable constructor found for ExecutionReport(quickfix.fie
ld.OrderID,quickfix.field.ExecID,quickfix.field.ExecTransType,quickfix.field.Exe
cType,quickfix.field.OrdStatus,quickfix.field.Symbol,quickfix.field.Side,quickfi
x.field.LeavesQty,quickfix.field.CumQty,quickfix.field.AvgPx)
[ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport() is not appl
icable
[ERROR] (actual and formal argument lists differ in length)
[ERROR] constructor quickfix.fix42.ExecutionReport.ExecutionReport(quickfix.fiel
d.OrderID,quickfix.field.ExecType,quickfix.field.OrdStatus,quickfix.field.Leaves
Qty,quickfix.field.CumQty,quickfix.field.AvgPx) is not applicable
[ERROR] (actual and formal argument lists differ in length)
所有字段都在FIX42.xml中定义。
<message name='ExecutionReport' msgcat='app' msgtype='8'>
<field name='OrderID' required='Y' />
<field name='SecondaryOrderID' required='N' />
<field name='SecondaryClOrdID' required='N' />
<field name='SecondaryExecID' required='N' />
<field name='ClOrdID' required='N' />
<field name='OrigClOrdID' required='N' />
<field name='TTClOrdID' required='N' />
<group name='NoPartyIDs' required='N'>
<field name='PartyID' required='N' />
<field name='PartyRole' required='N' />
<field name='PartyRoleQualifier' required='N' />
<field name='PartyIDSource' required='N' />
</group>
<field name='ExecID' required='N' />
<field name='ExecTransType' required='N' />
<field name='ExecRefID' required='N' />
<field name='ExecType' required='Y' />
<field name='ExecInst' required='N' />
<field name='OrdStatus' required='Y' />
<field name='OrdRejReason' required='N' />
<field name='ExecRestatementReason' required='N' />
<field name='RequestID' required='N'/>
<field name='Account' required='N' />
<field name='Symbol' required='N' />
<field name='SecurityDesc' required='N' />
<field name='Product' required='N' />
<field name='SecurityID' required='N' />
<field name='SecurityType' required='N' />
<field name='SecuritySubType' required='N' />
<field name='MaturityMonthYear' required='N' />
<field name='MaturityDate' required='N' />
<field name='MaturityDay' required='N' />
<field name='PutOrCall' required='N' />
<field name='IDSource' required='N' />
<field name='StrikePrice' required='N' />
<field name='OptAttribute' required='N' />
<field name='SecurityExchange' required='N' />
<field name='ExDestination' required='N' />
<field name='CFICode' required='N' />
<field name='Currency' required='N' />
<field name='DeliveryTerm' required='N' />
<field name='DeliveryDate' required='N' />
<field name='Side' required='N' />
<field name='OrderQty' required='N' />
<field name='OrdType' required='N' />
<field name='Price' required='N' />
<field name='StopPx' required='N' />
<field name='TimeInForce' required='N' />
<field name='ExpireDate' required='N' />
<field name='ClearingFirm' required='N' />
<field name='ClearingAccount' required='N' />
<field name='CustomerAccountRefID' required='N' />
<field name='LastShares' required='N' />
<field name='LastPx' required='N' />
<field name='LeavesQty' required='Y' />
<field name='CumQty' required='Y' />
<field name='AvgPx' required='Y' />
<field name='TradeDate' required='N' />
<field name='TransactTime' required='N' />
<field name='MinQty' required='N' />
<field name='OpenClose' required='N' />
<field name='DisplayQty' required='N'/>
<field name='RefreshQty' required='N'/>
<field name='Text' required='N' />
<field name='MultiLegReportingType' required='N' />
<field name='ManualOrderIndicator' required='N' />
<field name='ExchCred' required='N' />
<field name='OrderCapacity' required='N' />
<field name='CustOrderCapacity' required='N' />
<field name='ContingencyType' required='N' />
<field name='TTID' required='N' />
<field name='TrdType' required='N' />
<field name='TrdMatchID' required='N' />
<field name='CrossID' required='N' />
<field name='CrossType' required='N' />
<field name='TradeReportID' required='N' />
<field name='AOTCPreventionActionType' required='N'/>
<field name='TotalNumOrders' required='N'/>
<field name='BrokerID' required='N'/>
<field name='CompanyID' required='N'/>
<field name='LastParPx' required='N'/>
<field name='HandlInst' required='N' />
<field name='StagedOrderMsg' required='N' />
<field name='StagedOrderOwner' required='N' />
<field name='StagedOrderStatus' required='N' />
<field name='ExternalSource' required='N' />
<field name='ContractYearMonth' required='N' />
<group name='NoSecurityAltID' required='N'>
<field name='SecurityAltID' required='N' />
<field name='SecurityAltIDSource' required='N' />
</group>
<group name='NoStrategyParameters' required='N'>
<field name='StrategyParameterName' required='N' />
<field name='StrategyParameterType' required='N' />
<field name='StrategyParameterValue' required='N' />
</group>
<field name='AggressorIndicator' required='N' />
<field name='EffectiveTime' required='N' />
<field name='ExpireTime' required='N' />
<field name='TargetStrategyName' required='N' />
<field name='TargetStrategyType' required='N' />
<field name='BracketOrderType' required='N' />
<field name='BracketStopLimitOffset' required='N' />
<field name='ChildTIF' required='N' />
<field name='DiscVal' required='N' />
<field name='DiscValType' required='N' />
<field name='ETimeAct' required='N' />
<field name='Interval' required='N' />
<field name='IsTrlTrg' required='N' />
<field name='LeftoverAction' required='N' />
<field name='LeftoverTicks' required='N' />
<field name='LimitPriceType' required='N' />
<field name='LimitTicksAway' required='N' />
<field name='OcoStopTriggerPrice' required='N' />
<field name='ProfitTarget' required='N' />
<field name='StopLimitOffset' required='N' />
<field name='StopOrderType' required='N' />
<field name='StopTarget' required='N' />
<field name='TriggerPriceType' required='N' />
<field name='TriggerTicksAway' required='N' />
<field name='TriggerType' required='N' />
<field name='WithATickType' required='N' />
<field name='WithATick' required='N' />
<field name='AllocID' required='N' />
<field name='RefID' required='N' />
<group name='NoLegs' required='N'>
<field name='LegSymbol' required='N' />
<field name='LegSecurityDesc' required='N' />
<field name='LegProduct' required='N' />
<field name='LegSecurityID' required='N' />
<field name='LegIDSource' required='N' />
<field name='LegSecurityType' required='N' />
<field name='LegSecuritySubType' required='N' />
<field name='LegMaturityMonthYear' required='N' />
<field name='LegMaturityDate' required='N' />
<field name='LegMaturityDay' required='N' />
<field name='LegStrikePrice' required='N' />
<field name='LegPutOrCall' required='N' />
<field name='LegOptAttribute' required='N' />
<field name='LegSecurityExchange' required='N' />
<field name='LegExDestination' required='N' />
<field name='LegCFICode' required='N' />
<field name='LegSide' required='N' />
<field name='LegRatioQty' required='N' />
<field name='LegCurrency' required='N' />
<field name='LegDeliveryTerm' required='N' />
<field name='LegDeliveryDate' required='N' />
<field name='LegContractYearMonth' required='N' />
<field name='LegQty' required='N' />
<field name='LegRefID' required='N' />
<field name='LegPrice' required='N' />
<field name='LegLastPx' required='N' />
<field name='LegAllocID' required='N' />
<group name='NoLegSecurityAltID' required='N'>
<field name='LegSecurityAltID' required='N' />
<field name='LegSecurityAltIDSource' required='N' />
</group>
<group name='LegNoFills' required='N'>
<field name='LegFillExecID' required='N' />
<field name='LegFillPx' required='N' />
<field name='LegFillQty' required='N' />
<field name='LegFillTradingVenueRegulatoryTradeID' required='N' />
<field name='LegFillLastLiquidityIndicator' required='N' />
</group>
</group>
<group name='NoLinks' required='N'>
<field name='LinkID' required='Y' />
<field name='LinkType' required='Y' />
</group>
<group name='NoFills' required='N'>
<field name='FillExecID' required='N' />
<field name='FillPx' required='N' />
<field name='FillQty' required='N' />
<field name='FillTradingVenueRegulatoryTradeID' required='N' />
<field name='FillLastLiquidityIndicator' required='N' />
<field name='FillYieldType' required='N' /> <!-- applies to fills imported from CME drop copy service only -->
</group>
<field name='ClearingAccountOverride' required='N' />
<field name='DropCopyOrder' required='N' />
<field name='OrderOrigination' required='N' />
<field name='TrdRegPublicationReason' required='N' />
<field name='TradingVenueRegulatoryTradeID' required='N' />
<field name='LastLiquidityIndicator' required='N' />
<group name='NoOrderAttributes' required='N'>
<field name='OrderAttributeType' required='N' />
<field name='OrderAttributeValue' required='N' />
</group>
<field name='OrderIDGUID' required='N' />
<field name='TextTT' required='N' />
<field name='TextA' required='N' />
<field name='TextB' required='N' />
<field name='TextC' required='N' />
<field name='TimeReceivedFromExchange' required='N' />
<field name='EchoDC_01' required='N' />
<field name='EchoDC_02' required='N' />
<field name='EchoDC_03' required='N' />
<field name='EchoDC_04' required='N' />
<field name='EchoDC_05' required='N' />
<field name='EchoDC_06' required='N' />
<field name='EchoDC_07' required='N' />
<field name='EchoDC_08' required='N' />
<field name='EchoDC_09' required='N' />
<field name='EchoDC_10' required='N' />
<field name='SelfMatchPreventionID' required='N' />
<field name='SMPInstruction' required='N' />
<field name='OrderSource' required='N' />
<field name='UniqueExecID' required='N' />
<field name='SpreadLegRatioQty' required='N' />
<field name='LastMkt' required='N' />
<field name='AccountRiskGroup' required='N' />
<field name='MlegHeadExecId' required='N' />
<field name='OrdStatusReqID' required='N' />
<field name='TTCustomerName' required='N' />
<field name='AccountID' required='N' />
<field name='UserID' required='N' />
<field name='InvestmentDecision' required='N' />
<field name='ExecutionDecision' required='N' />
<field name='ClientIDCode' required='N' />
<field name='RequestTime' required='N' />
</message>
谢谢
最佳答案
quickfixj-examples-executor
期望FIX4.2 ExecutionReport是默认的FIX4.2。例如。好像您更改了ExecID
和ExecTransType
并不是必需的。重新生成代码后,将没有包含ExecID
和ExecTransType
作为参数的构造函数。因此,生成错误。
因此,您既需要修改示例项目的代码,也可以将它们从构建中排除。