Redian新闻
>
村长机器人源代码泄露
avatar
村长机器人源代码泄露# Stock
c*t
1
#define DECISION_BUY 1
#define DECISION_SELL 0
#define DECISION_UNKNOWN -1
//---- Ãëîáàëüíûå ïåðå
ìåííûå
extern bool ExitMarket = false;
extern bool ShowSuitablePeriod = false;
extern bool ShowMarketInfo = false;
extern bool ShowAccountStatus = false;
extern bool ShowStat = false;
extern bool ShowDecision = false;
extern bool ShowDirection = false;
extern bool BlockSell = false;
extern bool BlockBuy = false;
extern bool ShowLots = false;
extern bool BlockStopLoss = false;
extern bool DisableShadowStopLoss = true;
extern bool DisableExitSell = false;
extern bool DisableExitBuy = false;
extern bool EnableMACD = false;
extern bool EnableMA = false;
extern bool EnableCyberiaLogic = true;
extern bool EnableLogicTrading = false;
extern bool EnableMoneyTrain = false;
extern bool EnableReverceDetector = false;
extern double ReverceIndex = 3;
extern double MoneyTrainLevel = 4;
extern int MACDLevel = 10;
extern bool AutoLots = True;
extern bool AutoDirection = True;
extern double ValuesPeriodCount = 23;
extern double ValuesPeriodCountMax = 23;
extern double SlipPage = 1; // Ïðîñêàëüç
251;âàíèå ñòàâêè
extern double Lots = 0.1; // Êîëè÷åñòâî
; ëîòîâ
extern double StopLoss = 0;
extern double TakeProfit = 0;
extern double SymbolsCount = 1;
extern double Risk = 0.5;
extern double StopLossIndex = 1.1;
extern bool AutoStopLossIndex = true;
extern double StopLevel;
bool DisableSell = false;
bool DisableBuy = false;
bool ExitSell = false;
bool ExitBuy = false;
double Disperce = 0;
double DisperceMax = 0;
bool DisableSellPipsator = false;
bool DisableBuyPipsator = false;
//----
double ValuePeriod = 1; // Øàã ïåðèîäà
â ìèíóòàõ
double ValuePeriodPrev = 1;
int FoundOpenedOrder = false;
bool DisablePipsator = false;
double BidPrev = 0;
double AskPrev = 0;
// Ïåðåìåííûå äëÿ î
;öåíêè êà÷åñòâà ìîäåë
èðîâàíèÿ
double BuyPossibilityQuality;
double SellPossibilityQuality;
double UndefinedPossibilityQuality;
//double BuyPossibilityQualityMid;
double PossibilityQuality;
double QualityMax = 0;
//----
double BuySucPossibilityQuality;
double SellSucPossibilityQuality;
double UndefinedSucPossibilityQuality;
double PossibilitySucQuality;
//----
double ModelingPeriod; // Ïåðèîä ìîä
229;ëèðîâàíèÿ â ìèíóòàõ
double ModelingBars; // Êîëè÷åñòâî
248;àãîâ â ïåðèîäå
//----
double Spread; // Ñïðýä
double Decision;
double DecisionValue;
double PrevDecisionValue;
//----
int ticket, total, cnt;
//----
double BuyPossibility;
double SellPossibility;
double UndefinedPossibility;
double BuyPossibilityPrev;
double SellPossibilityPrev;
double UndefinedPossibilityPrev;
//----
double BuySucPossibilityMid; // Ñðåäíÿÿ â
;åðîÿòíîñòü óñïåøí
238;é ïîêóïêè
double SellSucPossibilityMid; // Ñðåäíÿÿ
226;åðîÿòíîñòü óñïåø
íîé ïðîäàæè
double UndefinedSucPossibilityMid; // Ñðåäíÿÿ
óñïåøíàÿ âåðîÿòí
238;ñòü íåîïðåäåëåíí&
#238;ãî ñîñòîÿíèÿ
//----
double SellSucPossibilityCount; // Êîëè÷åñòâ
;î âåðîÿòíîñòåé óñ
239;åøíîé ïðîäàæè
double BuySucPossibilityCount; // Êîëè÷åñòâ
î âåðîÿòíîñòåé óñ
239;åøíîé ïîêóïêè
double UndefinedSucPossibilityCount; // Êîëè÷åñò
âî âåðîÿòíîñòåé í
229;îïðåäåëåííîãî &
#241;îñòîÿíèÿ
//----
double BuyPossibilityMid; // Ñðåäíÿÿ â
229;ðîÿòíîñòü ïîêóïêè
double SellPossibilityMid; // Ñðåäíÿÿ â&
#229;ðîÿòíîñòü ïðîäàæè
double UndefinedPossibilityMid; // Ñðåäíÿÿ
226;åðîÿòíîñòü íåîïð&
#229;äåëåííîãî ñîñò
238;ÿíèÿ
//----
double SellPossibilityCount; // Êîëè÷åñòâ
238; âåðîÿòíîñòåé ïð
238;äàæè
double BuyPossibilityCount; // Êîëè÷åñòâ
238; âåðîÿòíîñòåé ïîê
óïêè
double UndefinedPossibilityCount; // Êîëè÷åñò
226;î âåðîÿòíîñòåé íå
îïðåäåëåííîãî ñ
;îñòîÿíèÿ
//----
// Ïåðåìåííûå äëÿ õ
;ðàíåíèÿ èíôîðìàöèÿ î
ðûíêå
double ModeLow;
double ModeHigh;
double ModeTime;
double ModeBid;
double ModeAsk;
double ModePoint;
double ModeDigits;
double ModeSpread;
double ModeStopLevel;
double ModeLotSize;
double ModeTickValue;
double ModeTickSize;
double ModeSwapLong;
double ModeSwapShort;
double ModeStarting;
double ModeExpiration;
double ModeTradeAllowed;
double ModeMinLot;
double ModeLotStep;
//+------------------------------------------------------------------+
//|Ñ÷èòûâàåì èíôîðìàöè
254; î ðûíêå
|
//+------------------------------------------------------------------+
int GetMarketInfo()
{
// Ñ÷èòûâàåì èíôîðìàöè&
#254; î ðûíêå
ModeLow = MarketInfo(Symbol(), MODE_LOW);
ModeHigh = MarketInfo(Symbol(), MODE_HIGH);
ModeTime = MarketInfo(Symbol(), MODE_TIME);
ModeBid = MarketInfo(Symbol(), MODE_BID);
ModeAsk = MarketInfo(Symbol(), MODE_ASK);
ModePoint = MarketInfo(Symbol(), MODE_POINT);
ModeDigits = MarketInfo(Symbol(), MODE_DIGITS);
ModeSpread = MarketInfo(Symbol(), MODE_SPREAD);
ModeStopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
ModeLotSize = MarketInfo(Symbol(), MODE_LOTSIZE);
ModeTickValue = MarketInfo(Symbol(), MODE_TICKVALUE);
ModeTickSize = MarketInfo(Symbol(), MODE_TICKSIZE);
ModeSwapLong = MarketInfo(Symbol(), MODE_SWAPLONG);
ModeSwapShort = MarketInfo(Symbol(), MODE_SWAPSHORT);
ModeStarting = MarketInfo(Symbol(), MODE_STARTING);
ModeExpiration = MarketInfo(Symbol(), MODE_EXPIRATION);
ModeTradeAllowed = MarketInfo(Symbol(), MODE_TRADEALLOWED);
ModeMinLot = MarketInfo(Symbol(), MODE_MINLOT);
ModeLotStep = MarketInfo(Symbol(), MODE_LOTSTEP);
// Âûâîäèì èíôîðìàöè&
#254; î ðûíêå
if ( ShowMarketInfo == True )
{
Print("ModeLow:",ModeLow);
Print("ModeHigh:",ModeHigh);
Print("ModeTime:",ModeTime);
Print("ModeBid:",ModeBid);
Print("ModeAsk:",ModeAsk);
Print("ModePoint:",ModePoint);
Print("ModeDigits:",ModeDigits);
Print("ModeSpread:",ModeSpread);
Print("ModeStopLevel:",ModeStopLevel);
Print("ModeLotSize:",ModeLotSize);
Print("ModeTickValue:",ModeTickValue);
Print("ModeTickSize:",ModeTickSize);
Print("ModeSwapLong:",ModeSwapLong);
Print("ModeSwapShort:",ModeSwapShort);
Print("ModeStarting:",ModeStarting);
Print("ModeExpiration:",ModeExpiration);
Print("ModeTradeAllowed:",ModeTradeAllowed);
Print("ModeMinLot:",ModeMinLot);
Print("ModeLotStep:",ModeLotStep);
}
return (0);
}
//+------------------------------------------------------------------+
//| Ðàñ÷åò êîëè÷åñòâà ë
îòîâ |
//+------------------------------------------------------------------+
int CyberiaLots()
{
GetMarketInfo();
// Ñóììà ñ÷åòà
double S;
// Ñòîèìîñòü ëîòà
double L;
// Êîëè÷åñòâî ëîòî&
#226;
double k;
// Ñòîèìîñòü îäíîãî
239;óíêòà
if( AutoLots == true )
{
if(SymbolsCount != OrdersTotal())
{
S = (AccountBalance()* Risk - AccountMargin()) * AccountLeverage(
) /
(SymbolsCount - OrdersTotal());
}
else
{
S = 0;
}
// Ïðîâåðÿåì, ÿâ
235;ÿåòñÿ ëè âàëþòà ïî
; åâðî
if(StringFind( Symbol(), "USD") == -1)
{
if(StringFind( Symbol(), "EUR") == -1)
{
S = 0;
}
else
{
S = S / iClose ("EURUSD", PERIOD_M1, 0);
if(StringFind( Symbol(), "EUR") != 0)
{
S /= Bid;
}
}
}
else
{
if(StringFind(Symbol(), "USD") != 0)
{
S /= Bid;
}
}
S /= ModeLotSize;
S -= ModeMinLot;
S /= ModeLotStep;
S = NormalizeDouble(S, 0);
S *= ModeLotStep;
S += ModeMinLot;
Lots = S;
if(ShowLots == True)
Print ("Lots:", Lots);
}
return (0);
}
//+------------------------------------------------------------------+
//| Èíèöèàëèçèðóåì ñîâ
;åòíèêà |
//+------------------------------------------------------------------+
int init()
{
AccountStatus();
GetMarketInfo();
ModelingPeriod = ValuePeriod * ValuesPeriodCount; // Ïåðè
îä ìîäåëèðîâàíèÿ
226; ìèíóòàõ
if (ValuePeriod != 0 )
ModelingBars = ModelingPeriod / ValuePeriod; // Êîëè
÷åñòâî øàãîâ â ïå&
#240;èîäå
CalculateSpread();
return(0);
}
//+------------------------------------------------------------------+
//| Âû÷èñëÿåì ôàêòè÷åñ
êóþ âåëè÷èíó ñïðåäà (
226;îçâðàùàåìûå ôóíêöè
è |
//| î ðûíêå ìîãóò äàâàòü í
åâåðíîå ôàêòè÷åñêî&
#229; çíà÷åíèå ñïðåäà å
241;ëè |
//| áðîêåð âàðüèðóåò â
229;ëè÷èíó ñïðåäà
|
//+------------------------------------------------------------------+
int CalculateSpread()
{
Spread = Ask - Bid;
return (0);
}
//+------------------------------------------------------------------+
//| Ïðèíèìàåì ðåøåíèå
|
//+------------------------------------------------------------------+
int CalculatePossibility (int shift)
{
DecisionValue = iClose( Symbol(), PERIOD_M1, ValuePeriod * shift) -
iOpen( Symbol(), PERIOD_M1, ValuePeriod * shift);
PrevDecisionValue = iClose( Symbol(), PERIOD_M1, ValuePeriod * (shift+1))
-
iOpen( Symbol(), PERIOD_M1, ValuePeriod * (shift+1));
SellPossibility = 0;
BuyPossibility = 0;
UndefinedPossibility = 0;
if(DecisionValue != 0) // Åñëè ðåøåí
èå íå îïðåäåëåííî
{
if(DecisionValue > 0) // Åñëè ðåøå
;íèå â ïîëüçó ïðîäà
230;è
{
// Ïîäîçðåíèå íà
226;åðîÿòíîñòü ïðîäà&
#230;è
if(PrevDecisionValue < 0) // Ïîäòâå
240;æäåíèå ðåøåíèÿ â &
#239;îëüçó ïðîäàæè
{
Decision = DECISION_SELL;
BuyPossibility = 0;
SellPossibility = DecisionValue;
UndefinedPossibility = 0;
}
else // Èíà÷å ðåøåíèå í
å îïðåäåëåíî
{
Decision = DECISION_UNKNOWN;
UndefinedPossibility = DecisionValue;
BuyPossibility = 0;
SellPossibility = 0;
}
}
else // Åñëè ðåøåíèå â
; ïîëüçó ïîêóïêè
{
if(PrevDecisionValue > 0) // Ïîäòâå
240;æäåíèå ðåøåíèÿ â &
#239;îëüçó ïðîäàæè
{
Decision = DECISION_BUY;
SellPossibility = 0;
UndefinedPossibility = 0;
BuyPossibility = -1 * DecisionValue;
}
else // Ðåøåíèå íå îï
ðåäåëåíî
{
Decision = DECISION_UNKNOWN;
UndefinedPossibility = -1 * DecisionValue;
SellPossibility = 0;
BuyPossibility = 0;
}
}
}
else
{
Decision = DECISION_UNKNOWN;
UndefinedPossibility = 0;
SellPossibility = 0;
BuyPossibility = 0;
}
return (Decision);
}
//+------------------------------------------------------------------+
//| Âû÷èñëÿåì ñòàòèñòèêó
âåðîÿòíîñòåé
|
//+------------------------------------------------------------------+
int CalculatePossibilityStat()
{
int i;
BuySucPossibilityCount = 0;
SellSucPossibilityCount = 0;
UndefinedSucPossibilityCount = 0;
//----
BuyPossibilityCount = 0;
SellPossibilityCount = 0;
UndefinedPossibilityCount = 0;
// Âû÷èñëÿåì ñðåäí
èå çíà÷åíèÿ âåðîÿòí
238;ñòè
BuySucPossibilityMid = 0;
SellSucPossibilityMid = 0;
UndefinedSucPossibilityMid = 0;
BuyPossibilityQuality = 0;
SellPossibilityQuality = 0;
UndefinedPossibilityQuality = 0;
PossibilityQuality = 0;
//----
BuySucPossibilityQuality = 0;
SellSucPossibilityQuality = 0;
UndefinedSucPossibilityQuality = 0;
PossibilitySucQuality = 0;
for( i = 0 ; i < ModelingBars ; i ++ )
{
// Âû÷èñëÿåì ðåøå
;íèå äëÿ äàííîãî èíòå
240;âàëà
CalculatePossibility (i);
// Åñëè ðåøåíèå ä
235;ÿ çíà÷åíèÿ i - ïðîäàâ
àòü
if(Decision == DECISION_SELL )
SellPossibilityQuality ++;
// Åñëè ðåøåíèå ä
235;ÿ çíà÷åíèÿ i - ïîêóïàòü
if(Decision == DECISION_BUY )
BuyPossibilityQuality ++;
// Åñëè ðåøåíèå ä
235;ÿ çíà÷åíèÿ i - íå îïðå
;äåëåíî
if(Decision == DECISION_UNKNOWN )
UndefinedPossibilityQuality ++;
// Òå æå îöåíêè äë
255; óñïåøíûõ ñèòóàöèé

//
if((BuyPossibility > Spread) || (SellPossibility > Spread) ||
(UndefinedPossibility > Spread))
{
if(Decision == DECISION_SELL)
SellSucPossibilityQuality ++;
if(Decision == DECISION_BUY)
BuySucPossibilityQuality ++;
if(Decision == DECISION_UNKNOWN )
UndefinedSucPossibilityQuality ++;
}
// Âû÷èñëÿåì ñðåä
;íèå âåðîÿòíîñòè ñî
áûòèé
// Âåðîÿòíîñòè ïîê
óïêè
BuyPossibilityMid *= BuyPossibilityCount;
BuyPossibilityCount ++;
BuyPossibilityMid += BuyPossibility;
if(BuyPossibilityCount != 0 )
BuyPossibilityMid /= BuyPossibilityCount;
else
BuyPossibilityMid = 0;
// Âåðîÿòíîñòè ïð
238;äàæè
SellPossibilityMid *= SellPossibilityCount;
SellPossibilityCount ++;
SellPossibilityMid += SellPossibility;
if(SellPossibilityCount != 0 )
SellPossibilityMid /= SellPossibilityCount;
else
SellPossibilityMid = 0;
// Âåðîÿòíîñòè íåî&
#239;ðåäåëåííîãî ñî
ñòîÿíèÿ
UndefinedPossibilityMid *= UndefinedPossibilityCount;
UndefinedPossibilityCount ++;
UndefinedPossibilityMid += UndefinedPossibility;
if(UndefinedPossibilityCount != 0)
UndefinedPossibilityMid /= UndefinedPossibilityCount;
else
UndefinedPossibilityMid = 0;
// Âû÷èñëÿåì ñðåä
;íèå âåðîÿòíîñòè óñï
;åøíûõ ñîáûòèé
if(BuyPossibility > Spread)
{
BuySucPossibilityMid *= BuySucPossibilityCount;
BuySucPossibilityCount ++;
BuySucPossibilityMid += BuyPossibility;
if(BuySucPossibilityCount != 0)
BuySucPossibilityMid /= BuySucPossibilityCount;
else
BuySucPossibilityMid = 0;
}
if(SellPossibility > Spread)
{
SellSucPossibilityMid *= SellSucPossibilityCount;
SellSucPossibilityCount ++;
SellSucPossibilityMid += SellPossibility;
if (SellSucPossibilityCount != 0)
SellSucPossibilityMid /= SellSucPossibilityCount;
else
SellSucPossibilityMid = 0;
}
if(UndefinedPossibility > Spread)
{
UndefinedSucPossibilityMid *= UndefinedSucPossibilityCount;
UndefinedSucPossibilityCount ++;
UndefinedSucPossibilityMid += UndefinedPossibility;
if(UndefinedSucPossibilityCount != 0)
UndefinedSucPossibilityMid /= UndefinedSucPossibilityCount;
else
UndefinedSucPossibilityMid = 0;
}
}
if((UndefinedPossibilityQuality + SellPossibilityQuality +
BuyPossibilityQuality)!= 0)
PossibilityQuality = (SellPossibilityQuality + BuyPossibilityQuality)
/
(UndefinedPossibilityQuality + SellPossibilityQuality +
BuyPossibilityQuality);
else
PossibilityQuality = 0;
// Êà÷åñòâî äëÿ óñï
åøíûõ ñèòóàöèé
if((UndefinedSucPossibilityQuality + SellSucPossibilityQuality +
BuySucPossibilityQuality)!= 0)
PossibilitySucQuality = (SellSucPossibilityQuality +
BuySucPossibilityQuality) /
(UndefinedSucPossibilityQuality +
SellSucPossibilityQuality +
BuySucPossibilityQuality);
else
PossibilitySucQuality = 0;
return (0);
}
//+------------------------------------------------------------------+
//| Ïîêàçûâàåì ñòàòèñòèê
ó |
//+------------------------------------------------------------------+
int DisplayStat()
{
if(ShowStat == true)
{
Print ("SellPossibilityMid*SellPossibilityQuality:",
SellPossibilityMid*SellPossibilityQuality);
Print ("BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*
BuyPossibilityQuality);
Print ("UndefinedPossibilityMid*UndefinedPossibilityQuality:",
UndefinedPossibilityMid*UndefinedPossibilityQuality);
Print ("UndefinedSucPossibilityQuality:",
UndefinedSucPossibilityQuality);
Print ("SellSucPossibilityQuality:", SellSucPossibilityQuality);
Print ("BuySucPossibilityQuality:", BuySucPossibilityQuality);
Print ("UndefinedPossibilityQuality:", UndefinedPossibilityQuality);
Print ("SellPossibilityQuality:", SellPossibilityQuality);
Print ("BuyPossibilityQuality:", BuyPossibilityQuality);
Print ("UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);
Print ("SellSucPossibilityMid:", SellSucPossibilityMid);
Print ("BuySucPossibilityMid:", BuySucPossibilityMid);
Print ("UndefinedPossibilityMid:", UndefinedPossibilityMid);
Print ("SellPossibilityMid:", SellPossibilityMid);
Print ("BuyPossibilityMid:", BuyPossibilityMid);
}
return (0);
} //
//+------------------------------------------------------------------+
//| Àíàëèçèðóåì ñîñòî
255;íèå äëÿ ïðèíÿòèÿ ð
229;øåíèÿ |
//+------------------------------------------------------------------+
int CyberiaDecision()
{
// Âû÷èñëÿåì ñòàòèñòèêó &
#239;åðèîäà
CalculatePossibilityStat();
// Âû÷èñëÿåì âåðîÿ
òíîñòè ñîâåðøåíèÿ
241;äåëîê
CalculatePossibility(0);
DisplayStat();
return(Decision);
}
//+------------------------------------------------------------------+
//| Âû÷èñëÿåì íàïðàâë
;åíèå äâèæåíèÿ ðûíêà
|
//+------------------------------------------------------------------+
int CalculateDirection()
{
DisableSellPipsator = false;
DisableBuyPipsator = false;
DisablePipsator = false;
DisableSell = false;
DisableBuy = false;
//----
if(EnableCyberiaLogic == true)
{
AskCyberiaLogic();
}
if(EnableMACD == true)
AskMACD();
if(EnableMA == true)
AskMA();
if(EnableReverceDetector == true)
ReverceDetector();
return (0);
}
//+------------------------------------------------------------------+
//| Åñëè âåðîÿòíîñòè
ïðåâûøàþò ïîðîã
;è èíâåðòèðîâàíèÿ ðå
248;åíèÿ |
//+------------------------------------------------------------------+
int ReverceDetector ()
{
if((BuyPossibility > BuyPossibilityMid * ReverceIndex && BuyPossibility !
= 0 &&
BuyPossibilityMid != 0) ||(SellPossibility > SellPossibilityMid *
ReverceIndex &&
SellPossibility != 0 && SellPossibilityMid != 0))
{
if(DisableSell == true)
DisableSell = false;
else
DisableSell = true;
if(DisableBuy == true)
DisableBuy = false;
else
DisableBuy = true;
//----
if(DisableSellPipsator == true)
DisableSellPipsator = false;
else
DisableSellPipsator = true;
if(DisableBuyPipsator == true)
DisableBuyPipsator = false;
else
DisableBuyPipsator = true;
}
return (0);
}
//+------------------------------------------------------------------+
//| Îïðàøèâàåì ëîãèêó ò
îðãîâëè CyberiaLogic(C)
|
//+------------------------------------------------------------------+
int AskCyberiaLogic()
{
//Óñòàíàâëèâàåì áëîêè
240;îâêè ïðè ïàäåíèÿõ
240;ûíêà
/*DisableBuy = true;
DisableSell = true;
DisablePipsator = false;*/
// Åñëè ðûíîê ðàâíîì
229;ðíî äâèæåòñÿ â çà&
#228;àííîì íàïðàâëåíèè
if(ValuePeriod > ValuePeriodPrev)
{
if(SellPossibilityMid*SellPossibilityQuality > BuyPossibilityMid*
BuyPossibilityQuality)
{
DisableSell = false;
DisableBuy = true;
DisableBuyPipsator = true;
if(SellSucPossibilityMid*SellSucPossibilityQuality >
BuySucPossibilityMid*BuySucPossibilityQuality)
{
DisableSell = true;
}
}
if(SellPossibilityMid*SellPossibilityQuality < BuyPossibilityMid*
BuyPossibilityQuality)
{
DisableSell = true;
DisableBuy = false;
DisableSellPipsator = true;
if(SellSucPossibilityMid*SellSucPossibilityQuality <
BuySucPossibilityMid*BuySucPossibilityQuality)
{
DisableBuy = true;
}
}
}
// Åñëè ðûíîê ìåíÿåò
íàïðàâëåíèå - íèêîãäà
íå òîðãóé ïðîòèâ òðå
;íäà!!!
if(ValuePeriod < ValuePeriodPrev)
{
if(SellPossibilityMid*SellPossibilityQuality > BuyPossibilityMid*
BuyPossibilityQuality)
{
DisableSell = true;
DisableBuy = true;
}
if(SellPossibilityMid*SellPossibilityQuality < BuyPossibilityMid*
BuyPossibilityQuality)
{
DisableSell = true;
DisableBuy = true;
}
}
// Åñëè ðûíîê ãîðèç
îíòàëüíûé
if(SellPossibilityMid*SellPossibilityQuality == BuyPossibilityMid*
BuyPossibilityQuality)
{
DisableSell = true;
DisableBuy = true;
DisablePipsator=false;
}
// Áëîêèðóåì âåðîÿ
òíîñòü âûõîäà èç ðû
íêà
if(SellPossibility > SellSucPossibilityMid * 2 && SellSucPossibilityMid >
0)
{
DisableSell = true;
DisableSellPipsator = true;
}
// Áëîêèðóåì âåðîÿ
òíîñòü âûõîäà èç ðû
íêà
if(BuyPossibility > BuySucPossibilityMid * 2 && BuySucPossibilityMid > 0 )
{
DisableBuy = true;
DisableBuyPipsator = true;
}
if(ShowDirection == true)
{
if(DisableSell == true )
{
Print("Ïðîäàæà çàáëî
êèðîâàíà:", SellPossibilityMid*SellPossibilityQuality);
}
else
{
Print ("Ïðîäàæà ðàçð
229;øåíà:", SellPossibilityMid*SellPossibilityQuality);
}
//----
if(DisableBuy == true )
{
Print ("Ïîêóïêà çàáëîêè
240;îâàíà:", BuyPossibilityMid*BuyPossibilityQuality);
}
else
{
Print ("Ïîêóïêà ðàçðå
248;åíà:", BuyPossibilityMid*BuyPossibilityQuality);
}
}
if(ShowDecision == true)
{
if(Decision == DECISION_SELL)
Print("Ðåøåíèå - ïðî
228;àâàòü: ", DecisionValue);
if(Decision == DECISION_BUY)
Print("Ðåøåíèå - ïîêóï
;àòü: ", DecisionValue);
if(Decision == DECISION_UNKNOWN)
Print("Ðåøåíèå - íåîï&
#240;åäåëåííîñòü: ", DecisionValue);
}
return (0);
}
//+------------------------------------------------------------------+
//| Îïðàøèâàåì èíäèêàòî
240; MA |
//+------------------------------------------------------------------+
int AskMA()
{
if(iMA(Symbol(), PERIOD_M1, ValuePeriod, 0 , MODE_EMA, PRICE_CLOSE, 0) >
iMA(Symbol(), PERIOD_M1, ValuePeriod, 0 , MODE_EMA, PRICE_CLOSE, 1))

{
DisableSell = true;
DisableSellPipsator = true;
}
if(iMA(Symbol(), PERIOD_M1, ValuePeriod, 0 , MODE_EMA, PRICE_CLOSE, 0) <
iMA(Symbol(), PERIOD_M1, ValuePeriod, 0 , MODE_EMA, PRICE_CLOSE, 1))

{
DisableBuy = true;
DisableBuyPipsator = true;
}
return (0);
}
//+------------------------------------------------------------------+
//| Îïðàøèâàåì èíäèêàòî
240; MACD |
//+------------------------------------------------------------------+
int AskMACD()
{
double DecisionIndex = 0;
double SellIndex = 0;
double BuyIndex = 0;
double BuyVector = 0;
double SellVector = 0;
double BuyResult = 0;
double SellResult = 0;
DisablePipsator = false;
DisableSellPipsator = false;
DisableBuyPipsator = false;
DisableBuy = false;
DisableSell = false;
DisableExitSell = false;
DisableExitBuy = false;
// Áëîêèðóåì îøèáêè
for(int i = 0 ; i < MACDLevel ; i ++)
{
if(iMACD(Symbol(), MathPow( 2, i) , 2, 4, 1, PRICE_CLOSE, MODE_MAIN,
0) <
iMACD(Symbol(), MathPow( 2, i), 2, 4, 1, PRICE_CLOSE, MODE_MAIN, 1
) )
{
SellIndex += iMACD(Symbol(), MathPow( 2, i), 2, 4, 1, PRICE_CLOSE
, MODE_MAIN, 0);
}
if(iMACD(Symbol(), MathPow( 2, i), 2, 4, 1, PRICE_CLOSE, MODE_MAIN, 0
) >
iMACD(Symbol(), MathPow( 2, i), 2, 4, 1, PRICE_CLOSE, MODE_MAIN, 1
) )
{
BuyIndex += iMACD(Symbol(), MathPow( 2, i), 2, 4, 1, PRICE_CLOSE,
MODE_MAIN, 0);
}
}
if(SellIndex> BuyIndex)
{
DisableBuy = true;
DisableBuyPipsator = true;
}
if(SellIndex < BuyIndex)
{
DisableSell = true;
DisableSellPipsator = true;
}
return (0);
}
//+------------------------------------------------------------------------+
//| Ëîâèì ðûíî÷íûå ÃÝ
Ï - (âêëþ÷àåòñÿ íåïî&
#241;ðåäñòâåííî ïåð
229;ä âûõîäîì íîâîñ
òåé|
//+------------------------------------------------------------------------+
int MoneyTrain()
{
if(FoundOpenedOrder == False)
{
// Ñ÷èòàåì äèñïåðñè
254;
Disperce = (iHigh ( Symbol(), PERIOD_M1, 0) - iLow ( Symbol(), PERIOD
_M1, 0));
if(Decision == DECISION_SELL)
{
// *** Âïðûãèâàåì â
239;àðîâîç ïî íàïðàâ
235;åíèþ äâèæåíèÿ õàî
241;à ðûíêà ***
if((iClose( Symbol(), PERIOD_M1, 0) - iClose( Symbol(), PERIOD_M1
, ValuePeriod)) /
MoneyTrainLevel >= SellSucPossibilityMid &&
SellSucPossibilityMid != 0 &&
EnableMoneyTrain == true)
{
ModeSpread = ModeSpread + 1;
// Ðàñ÷åò ñòîï-ëî
ññ
if((Bid - SellSucPossibilityMid*StopLossIndex- ModeSpread *
Point) >
(Bid - ModeStopLevel* ModePoint- ModeSpread * Point))
{
StopLoss = Bid - ModeStopLevel* ModePoint- ModeSpread *
Point - Disperce;
}
else
{
if(SellSucPossibilityMid != 0)
StopLoss = Bid - SellSucPossibilityMid*StopLossIndex-
ModeSpread * Point - Disperce;
else
StopLoss = Bid - ModeStopLevel* ModePoint- ModeSpread
* Point - Disperce;
}
if(BlockBuy == true)
{
return(0);
}
StopLevel = StopLoss;
Print ("StopLevel:", StopLevel);
// Áëîêèðîâêà ñòî
;ïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, SlipPage,
StopLoss,
TakeProfit,"CyberiaTrader-AI-HB1",0,0,Blue
);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Îòêðûò îðä
229;ð íà ïîêóïêó: ",OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
238;ê: Îøèáêà îòêðûòèÿ îð
228;åðà íà ïîêóïêó: ",GetLastError());
PrintErrorValues();
}
return (0);
}
}
if(Decision == DECISION_BUY)
{
// *** Âïðûãèâàåì â
239;àðîâîç ïî íàïðàâ
235;åíèþ äâèæåíèÿ õàî
241;à ðûíêà ***
if((iClose( Symbol(), PERIOD_M1, ValuePeriod) - iClose( Symbol(),
PERIOD_M1, 0)) /
MoneyTrainLevel >= BuySucPossibilityMid &&
BuySucPossibilityMid != 0 &&
EnableMoneyTrain == true)
{
ModeSpread = ModeSpread + 1;
// Ðàñ÷åò ñòîï-ëî
ññ
if((Ask + BuySucPossibilityMid*StopLossIndex+ ModeSpread*
Point) <
(Ask + ModeStopLevel* ModePoint+ ModeSpread * Point))
{
StopLoss = Ask + ModeStopLevel* ModePoint+ ModeSpread *
Point+ Disperce;
}
else
{
if(BuySucPossibilityMid != 0)
StopLoss = Ask + BuySucPossibilityMid*StopLossIndex+
ModeSpread*Point +
Disperce;
else
StopLoss = Ask + ModeStopLevel* ModePoint+ ModeSpread *
Point+ Disperce;
}
// Åñëè âêëþ÷åíà
240;ó÷íàÿ áëîêèðîâêà ïð
238;äàæ
if(BlockSell == true)
{
return(0);
}
StopLevel = StopLoss;
Print ("StopLevel:", StopLevel);
// Áëîêèðîâêà ñòî
;ïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage,
StopLoss,
TakeProfit, "CyberiaTrader-AI-HS1", 0, 0,
Green);
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("Îòêðûò îðä
229;ð íà ïðîäàæó: ", OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
238;ê: Îøèáêà îòêðûòèÿ îð
228;åðà íà ïðîäàæó: ",GetLastError()
);
PrintErrorValues();
}
return (0);
}
}
}
return (0);
}
//+------------------------------------------------------------------+
//| Âõîä â ðûíîê
|
//+------------------------------------------------------------------+
int EnterMarket()
{
// Åñëè íåò ñðåäñòâ, &
#226;ûõîäèì
if(Lots == 0)
{
return (0);
}
// Âõîäèì â ðûíîê åñ
235;è íåò êîìàíäû âûõîä
à èç ðûíêà
if(ExitMarket == False)
{
// ------- Åñëè íåò îòêðûò
251;õ îðäåðîâ - âõî
228;èì â ðûíîê ------------
if(FoundOpenedOrder == False)
{
// Ñ÷èòàåì äèñïåðñ
èþ
Disperce = (iHigh(Symbol(), PERIOD_M1, 0) - iLow(Symbol(), PERIOD
_M1, 0));
if(Decision == DECISION_SELL)
{
// Åñëè öåíà ïîêó
239;êè áîëüøå ñðåäíåé
226;åëè÷èíû ïîêóïêè íà ìîä
;åëèðóåìîì èíòåðâàë
229;
if(SellPossibility >= SellSucPossibilityMid)
{
// Ðàñ÷åò ñòîï-ë
238;ññ
if((Ask + BuySucPossibilityMid*StopLossIndex + ModeSpread
* Point) <
(Ask + ModeStopLevel* ModePoint+ ModeSpread * Point))
{
StopLoss = Ask + ModeStopLevel* ModePoint+ ModeSpread
* Point + Disperce;
}
else
{
if(BuySucPossibilityMid != 0)
StopLoss = Ask + BuySucPossibilityMid*
StopLossIndex +
ModeSpread * Point+ Disperce;
else
StopLoss = Ask + ModeStopLevel* ModePoint+
ModeSpread * Point +
Disperce;
}
// Åñëè âêëþ÷åíà
ðó÷íàÿ áëîêèðîâêà ïð
238;äàæ
if(DisableSell == true)
{
return(0);
}
if(BlockSell == true)
{
return(0);
}
StopLevel = StopLoss;
Print ("StopLevel:", StopLevel);
// Áëîêèðîâêà ñò&
#238;ïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage
, StopLoss,
TakeProfit, "CyberiaTrader-AI-LS1", 0, 0, Green);
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)
)
Print("Îòêðûò îðä
;åð íà ïðîäàæó: ",OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
îê: Îøèáêà îòêðûòèÿ îð
äåðà íà ïðîäàæó: ",GetLastError
());
PrintErrorValues();
}
// Ñîõðàíÿåì ïð
;åäûäóùåå çíà÷åíèå ï
;åðèîäà
return (0);
}
}
if(Decision == DECISION_BUY)
{
// Åñëè öåíà ïîêó
239;êè áîëüøå ñðåäíåé
226;åëè÷èíû ïîêóïêè íà ìîä
;åëèðóåìîì èíòåðâàë
229;
if(BuyPossibility >= BuySucPossibilityMid)
{
// Ðàñ÷åò ñòîï-ë
238;ññ
if((Bid - SellSucPossibilityMid*StopLossIndex- ModeSpread
* Point) >
(Bid - ModeStopLevel* ModePoint- ModeSpread* Point))
{
StopLoss = Bid - ModeStopLevel* ModePoint- ModeSpread
* Point - Disperce;
}
else
{
if(SellSucPossibilityMid != 0)
StopLoss = Bid - SellSucPossibilityMid*
StopLossIndex-
ModeSpread* Point- Disperce;
else
StopLoss = Bid - ModeStopLevel* ModePoint-
ModeSpread* Point-
Disperce;
}
// Åñëè âêëþ÷åíà
ðó÷íàÿ áëîêèðîâêà ïîê
óïîê
if(DisableBuy == true)
{
return(0);
}
if(BlockBuy == true)
{
return(0);
}
StopLevel = StopLoss;
Print("StopLevel:", StopLevel);
// Áëîêèðîâêà ñò&
#238;ïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, SlipPage,
StopLoss,
TakeProfit, "CyberiaTrader-AI-LB1", 0, 0, Blue);
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("Îòêðûò îðä
åð íà ïîêóïêó: ",OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
îê: Îøèáêà îòêðûòèÿ îð
äåðà íà ïîêóïêó: ",GetLastError());
PrintErrorValues();
}
return (0);
}
}
}
// ---------------- Êîíåö âõîäà
226; ðûíîê ----------------------
}
return (0);
}
//+------------------------------------------------------------------+
//| Ïîèñê îòêðûòûõ îð
äåðîâ |
//+------------------------------------------------------------------+
int FindSymbolOrder()
{
FoundOpenedOrder = false;
total = OrdersTotal();
for(cnt = 0; cnt < total; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
// Èùåì îðäåð ïî íà&
#248;åé âàëþòå
if(OrderSymbol() == Symbol())
{
FoundOpenedOrder = True;
break;
}
else
{
StopLevel = 0;
StopLoss = 0;
}
}
return (0);
}
//+------------------------------------------------------------------+
//| Ïèïñàòîð íà ìèíóòíûõ èí
òåðâàëàõ |
//+------------------------------------------------------------------+
int RunPipsator()
{
int i = 0;
FindSymbolOrder();
// Âõîäèì â ðûíîê åñ
;ëè íåò êîìàíäû âûõî
228;à èç ðûíêà
// Ñ÷èòàåì äèñïåðñèþ
if(Lots == 0)
return (0);
Disperce = 0;
if(ExitMarket == False)
{
// ---------- Åñëè íåò îòêðû
òûõ îðäåðîâ - âõ
238;äèì â ðûíîê ----------
if(FoundOpenedOrder == False)
{
Disperce = 0;
DisperceMax = 0;
// Ñ÷èòàåì ìàêñèìàëüíóþ
228;èñïåðñèþ
for(i = 0 ; i < ValuePeriod ; i ++)
{
Disperce = (iHigh( Symbol(), PERIOD_M1, i + 1) -
iLow( Symbol(), PERIOD_M1, i + 1));

if(Disperce > DisperceMax)
DisperceMax = Disperce;
}
Disperce = DisperceMax * StopLossIndex;
if( Disperce == 0 )
{
Disperce = ModeStopLevel * Point;
}
for(i = 0 ; i < ValuePeriod ; i ++)
{
// Ïèïñàòîð ìèíóòíî
227;î èíòåðâàëà ïî ïðî
;äàæå
if((Bid - iClose( Symbol(), PERIOD_M1, i + 1)) >
SellSucPossibilityMid * (i + 1) &&
SellSucPossibilityMid != 0 && DisablePipsator == false &&
DisableSellPipsator == false)
{
// Ðàñ÷åò ñòîï-ë
238;ññ
if((Ask + ModeSpread * Point + Disperce) <
(Ask + ModeStopLevel* ModePoint + ModeSpread * Point))
{
StopLoss = Ask + ModeStopLevel* ModePoint+ ModeSpread
* Point + Point;
}
else
{
if(BuySucPossibilityMid != 0)
StopLoss = Ask + ModeSpread * Point+ Disperce +
Point;
else
StopLoss = Ask + ModeStopLevel* ModePoint+
ModeSpread * Point + Point;
}
// Åñëè âêëþ÷åíà
ðó÷íàÿ áëîêèðîâêà ïð
238;äàæ
if(BlockSell == true)
{
return(0);
}
// Åñëè âêëþ÷åíà
ðó÷íàÿ áëîêèðîâêà ïð
238;äàæ
if(DisableSell == true)
{
return(0);
}
StopLevel = StopLoss;
Print("StopLevel:", StopLevel);
// Áëîêèðî&
#226;êà ñòîïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage
, StopLoss,
TakeProfit, "CyberiaTrader-AI-PS1", 0, 0, Green);
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)
)
Print("Îòêðûò îðä
;åð íà ïðîäàæó: ",OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
îê: Îøèáêà îòêðûòèÿ îð
äåðà íà ïðîäàæó: ",GetLastError
());
PrintErrorValues();
}
return (0);
}
// Ïèïñàòîð ìèíóòíî
227;î èíòåðâàëà ïî ïîêó&
#239;êå
if((iClose(Symbol(), PERIOD_M1, i + 1) - Bid) >
BuySucPossibilityMid *(i + 1) &&
BuySucPossibilityMid != 0 && DisablePipsator == False &&
DisableBuyPipsator == false)
{
// Ðàñ÷åò ñòîï-ë
238;ññ
if((Bid - ModeSpread * Point - Disperce) >
(Bid - ModeStopLevel* ModePoint- ModeSpread * Point))
{
StopLoss = Bid - ModeStopLevel* ModePoint- ModeSpread
* Point - Point;
}
else
{
if(SellSucPossibilityMid != 0)
StopLoss = Bid - ModeSpread * Point- Disperce-
Point;
else
StopLoss = Bid - ModeStopLevel* ModePoint-
ModeSpread * Point - Point;
}
// Åñëè âêëþ÷åíà
ðó÷íàÿ áëîêèðîâêà
if(DisableBuy == true)
{
return(0);
}
if(BlockBuy == true)
{
return(0);
}
StopLevel = StopLoss;
Print("StopLevel:", StopLevel);
// Áëîêèðîâêà ñò&
#238;ïëîñîâ
if(BlockStopLoss == true)
StopLoss = 0;

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, SlipPage,
StopLoss,
TakeProfit, "CyberiaTrader-AI-PB1", 0, 0, Blue);
if(ticket > 0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)
)
Print("Îòêðûò îðä
;åð íà ïîêóïêó: ",OrderOpenPrice());
}
else
{
Print("Âõîä â ðûí
îê: Îøèáêà îòêðûòèÿ îð
äåðà íà ïîêóïêó: ",GetLastError());
PrintErrorValues();
}
return (0);
}
}// Êîíåö ïèïñàòî
240;íîãî öèêëà
}
}
return (0);
}
//+------------------------------------------------------------------+
//| Âûõîä èç ðûíêà
|
//+------------------------------------------------------------------+
int ExitMarket ()
{
//FindSymbolOrder();
// -------------------- Îáðàáîòêà îòêð
251;òûõ îðäåðîâ --------------
avatar
b*r
2
gosh. 刷屏
avatar
r*a
3
这么落后,还在用C。
avatar
b*u
4
试着run了一下,午饭没了。:-(
avatar
b*e
5
一级程序员用汇编和C/C++。
Java等是一级程序员做出来给二级程序员用的。

【在 r***a 的大作中提到】
: 这么落后,还在用C。
avatar
S*t
6
你干吗?你也想来忽悠蝌蚪青蛙呀?小心我表扬你。
avatar
b*r
7
牛刀又胡扯,高盛跟我都直接硬件实现。

【在 b*******e 的大作中提到】
: 一级程序员用汇编和C/C++。
: Java等是一级程序员做出来给二级程序员用的。

avatar
b*r
8
马甲自言自语?

【在 S******t 的大作中提到】
: 你干吗?你也想来忽悠蝌蚪青蛙呀?小心我表扬你。
avatar
S*t
9
又不是我一个人这么干过。
好多大牛都是这样的,我就是个无脑跟而已嘛。

【在 b******r 的大作中提到】
: 马甲自言自语?
avatar
b*e
10
说话讲逻辑很重要。你见过程序员天天设计电路的么?

【在 b******r 的大作中提到】
: 牛刀又胡扯,高盛跟我都直接硬件实现。
avatar
b*r
11
村长就是用这个,只好退市了。
avatar
c*t
12
稍微改改就能用了。
据说rentech最初的model也不过如此。
avatar
c*t
13
所以贴出来。
后人引以为戒。

【在 b******r 的大作中提到】
: 村长就是用这个,只好退市了。
avatar
r*a
14
c++和c有本质区别,还是不要放在一起说为好。

【在 b*******e 的大作中提到】
: 一级程序员用汇编和C/C++。
: Java等是一级程序员做出来给二级程序员用的。

avatar
f*r
15
哈哈讲的好

fix
avatar
S*8
16
Yes, I agree. BTW, I do no like Meyers' tone in his books: it seems knowing
all these small tricks is the most important thing in the world. LOL.

fix
avatar
b*e
17
基本上大型程序没有人会用纯C来写了。大部分程序里面都是一起用的。

【在 r***a 的大作中提到】
: c++和c有本质区别,还是不要放在一起说为好。
avatar
b*e
18
我们用很多别人的开源代码和类。开源代码用得好,一个老手可以顶十个新手,工资只
要两倍。

fix
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。