L'amicizia è amicizia, ma il tabacco è a parte... Il codice completo sarà per questo:
non utilizzato:
dare il codice completo con la libreria standard (non posso farlo da solo perché non sono esperto di libreria standard) ...
--
non per il bene, ma per il male... Perché perderete la vostra comprensione della realtà... imparate l'OOP.
A questo punto penso che la questione sia finita.
Compagno, non ho bisogno di imparare su OOP, posso insegnare a chiunque, e non solo su OOP. Ho chiesto un codice per confrontare ciò che è necessario scrivere per aprire un accordo con l'aiuto della libreria standard e ciò che è necessario scrivere senza di essa. E cosa è più facile da capire alla fine? Sembra essere un suggerimento abbastanza costruttivo.
Compagno, non ho bisogno di essere istruito su OOP, posso insegnare a chiunque, e non solo su OOP. E ho chiesto un codice per confrontare ciò che è necessario scrivere per aprire un accordo con l'aiuto della libreria standard e ciò che è necessario scrivere senza di essa. E cosa è più facile da capire alla fine? Sembra essere un suggerimento abbastanza costruttivo.
Beh, no, quindi no.
Ho scritto tutto.
File nella directory Include:
class МойСигнальщик : public CExpertSignal //наследуемся от Signal
{
private:
CiCustom МойИндикатор;
public:
МойОбработчик();
~МойОбработчик();
bool ValidationSettings(void);
bool InitIndicators(CIndicators *indicators);
virtualint LongCondition();
virtualint ShortCondition();
protected:
bool МойИндикатор(CIndicators *indicators);
int МойСигнальщик::LongCondition()
{
int signal=0;
if (!signalLong0==0)
{
signal=100;
}
return(signal);
}
Nel Consulente esperto:
#include <МойСигнальщик.mqh>inputdouble Signal_StopLevel =150.0; // Stop Loss level (in points)inputdouble Signal_TakeLevel =120.0; // Take Profit level (in points)inputdouble Signal_PriceLevel =10.0; // Price level to execute a dealinputdouble Money_FixLot =1.0;
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
//--- Initializing expertif(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(-1);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(-2);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter IRTMiniMax
МойИндикатор *filter0=new МойИндикатор;
if(filter0==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(-3);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.Weight(Signal_MovingMM_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(-4);
}
//--- Add trailing to expert (will be deleted automatically))if(!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(-5);
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
if(money==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(-6);
}
//--- Add money to expert (will be deleted automatically))if(!ExtExpert.InitMoney(money))
{
//--- failedprintf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(-7);
}
//--- Set money parameters
money.Lot(Money_FixLot);
//--- Check all trading objects parametersif(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(-8);
}
//--- Tuning of all necessary indicatorsif(!ExtExpert.InitIndicators())
{
//--- failedprintf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(-9);
}
//--- okreturn(0);
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
notused: Cos'è più facile? riempire una struttura o affrontare i segnali?
Questo è il punto... Il segnale in questo caso particolare può essere un messaggio di testo dal tuo telefono... ma quando dici al tuo consulente esattamente cosa fare... lui lo farà...
Posso fare qualsiasi cosa sul Signal, basta che la tuta mi stia bene... Sono già su ATC2012)
L'amicizia è amicizia, ma il tabacco è a parte... Il codice completo sarà per questo:
non utilizzato:
dare il codice completo con la libreria standard (non posso farlo da solo perché non sono esperto di libreria standard) ...
--
non per il bene, ma per il male... Perché perderete la vostra comprensione della realtà... imparate l'OOP.
A questo punto penso che la questione sia finita.
Compagno, non ho bisogno di imparare su OOP, posso insegnare a chiunque, e non solo su OOP. Ho chiesto un codice per confrontare ciò che è necessario scrivere per aprire un accordo con l'aiuto della libreria standard e ciò che è necessario scrivere senza di essa. E cosa è più facile da capire alla fine? Sembra essere un suggerimento abbastanza costruttivo.
Beh, no, quindi no.
Un GRANDE GRAZIE a tutti!
inviato
In attesa di verifica
Con un po' di fortuna ci incontreremo al Campionato di Trading Automatico 2012!
Buona fortuna a tutti voi!
(Devo imparare...)
Compagno, non ho bisogno di essere istruito su OOP, posso insegnare a chiunque, e non solo su OOP. E ho chiesto un codice per confrontare ciò che è necessario scrivere per aprire un accordo con l'aiuto della libreria standard e ciò che è necessario scrivere senza di essa. E cosa è più facile da capire alla fine? Sembra essere un suggerimento abbastanza costruttivo.
Beh, no, quindi no.
Ho scritto tutto.
File nella directory Include:
Nel Consulente esperto:
Questo è tutto...
Insegnami l'OOP, per favore
E il tutto è già pronto e non c'è bisogno, ancora una volta, di reinventare la ruota...
Un GRANDE GRAZIE a tutti!
inviato
In attesa di verifica
Con un po' di fortuna ci incontreremo al Campionato di Trading Automatico 2012!
Buona fortuna a tutti voi!
(Devo imparare...)
cos'è più facile? riempire una struttura o gestire i segnali?
Oof )) Congratulazioni. Ora dovremo fare il tifo per te ))
Cos'è più facile? riempire una struttura o affrontare i segnali?
Questo è il punto... Il segnale in questo caso particolare può essere un messaggio di testo dal tuo telefono... ma quando dici al tuo consulente esattamente cosa fare... lui lo farà...
Posso fare qualsiasi cosa sul Signal, basta che la tuta mi stia bene... Sono già su ATC2012)
Sì, questa è la strada da seguire.
ma più spesso che no.