
//.cc#include"SigMh"#include#include#include#include#include#include#includenamespacelongbeach{namespacesignals{/********************************************///Spec/********************************************/SigMASpec::SigMASpec{initMembers;}voidSigMASpec::initMembers{if{MemberList::className;MemberList::add;MemberList::add;MemberList::add;MemberList::add;MemberList::add;MemberList::add;MemberList::m_bInitialized=true;}}boolSigMASpec::registerScripting{initMembers;LONGBEACH_REGISTER_SCRIPTING_ONCE;luabind::module[luabind::class_.def).def_readwrite.def_readwrite.def_readwrite.def_readwrite.def_readwrite];luaL_dostring+"=SigMASpec").c_str);returntrue;}voidSigMASpec::getDataRequirementsconst{SignalSpec::getDataRequirements;}voidSigMASpec::checkValidconst{SignalSpec::checkValid;}ISignalPtrSigMASpec::buildconst{IPriceProviderPtrref_pxp=builder->getPxPBuilder->buildPxProvider;returnISignalPtr,builder->getCandlesticksFactory,getDescription,ref_pxp,m_source,windows,periods,m_mode,builder->getVerboseLevel));}/********************************************///Signals/********************************************/SigMA::SigMA:SignalSmonImpl,_desc,_cc->getClockMonitor,_vbose),m_spCandlesticksFactory,m_refpxp,windows,periods,m_ma,0),diff,0),px,m_mode{usingnamespaceboost::assign;std::vectornames;for;i++)names.push_back+"_w"+boost::lexical_cast);initSignalStates;Subscriptionsub;m_refpxp->addPriceListener);m_subs.push_back;for;i++){Subscriptionsub;CandlePtrcand;cand=m_spCandlesticksFactory->create2,m_source,windows[i]);cand->subscribe;m_spSeries.push_back);m_subs.push_back;}}voidSigMA::onUpdate{for;i++)m_ma[i]=technicals::ma,periods[i]);notifySignalListeners;}voidSigMA::onInputChange{if){px=pxp.getRefPrice;setDirty;setOK;notifySignalListeners;}}voidSigMA::recomputeStateconst{if){for;i++){doubletmp=longbeach::EQZ?0.0:px-m_ma[i];doublesigtopush=0.0;switch{caseDIFF:setSignalState;break;caseARITH:setSignalState;break;caseLOG:sigtopush=?0.0:*log));setSignalState;break;default:LONGBEACH_THROW_ERROR_SS;break;}}setDirty;}}}}
文章为作者独立观点,不代表观点