#include <stdlib.mqh>#include <stderror.mqh>//#include <dynamic_channel.mqh> // динамический канал//#include <TrailingByFractals_LAVINA.mqh>//#include <TrailingByFractals.mqh>//// Внешние переменные (оптимизируются)externstring A0 = "Параметры ММ";
externdouble Lots = 0.1; // Стартовый лотexterndouble MaxRisk = 0; // риск на капитал в %// рассчитываем объем позиции взависимости от размера стопа, при заданном риске// например при депо 10 000 риск 1% при стопе 100 пп это будет примерно лот 0.1,// при стопе 200 пп уже лот должен быть 0.05, для того чтобы риск 1% остался на том же уровнеexternint MaxLoss = 90; // Максимально допустимая просадка в процентах от балансаexterndouble StopLoss = 0; // Стоплосс в пипсах - для пятизнака для йены, золота, серебра...int TakeProfitPips = 0; // Тейкпрофит в пипсах externint Period_ATR = 30; // значение АТР для расчета динамического каналаexterndouble Mul_TP = 4.0; // целевая прибыль в единицах волатильности (АТР)externdouble Mul_Sl = 0.8; // защитная остановка с последующим переворотом при ее сработке уже // увеличенным лотом в единицах волатильности (АТР)externint Max_Iteration = 36; // Максимальное количество итераций (ордеров) в мартине externint k = 2; // с какой итерации тралимexternint VAR_MM = 0; // используемый вариант усреднения в соотв-ии: множитель с числами ФИБО = 0 / множитель по арифметической прогрессии = 1// 2 - классический мартин - удвоение предыдущего объема с 3-его усреднения externstring Trailing = "---------- Параметры трала";
externint UseTrailing = 1; // Использовать = 1/не использовать = 0 трал externint type = 0; // вид трала - возможные значения: 0 - простой, 1 - по фракталам, 2 - по теням N свечей. externbool trlinloss = false; // Тралим только профит для всех видов траловexternstring A1 = "Параметры простого трала,пo фракталам,теням N баров,каналу,МА,SAR";
externint TralingStop = 1000; // дистанция простого трала в положительной зоне (пункты)externint indent = 100; // отступ (пунктов) при трале по фракталам, теням N свечей, ценовому каналу, МА,SARexternint bars_n = 10; // количество баров, для трала по их теням (от 1 и больше) или расчета границ канала externstring A2 = "Таймфрейм, время работы и параметры технических индикаторов";
//extern int t_trend_period =6; // 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1...-для старшего фильтра, внутри которого работаемexternint s_trend_period = 3; // PERIOD_M1 1 1 минута// PERIOD_M5 5 5 минут// PERIOD_M15 15 15 минут// PERIOD_M30 30 30 минут// PERIOD_H1 60 1 час// PERIOD_H4 240 4 часа// PERIOD_D1 1440 1 день// PERIOD_W1 10080 1 неделя// PERIOD_MN1 43200 1 месяц// 0 (ноль) 0 Период текущего графика externint Filter.Hour=0; // Д-Фильтр: торговля по часам, вне этих часовых рамок новые сделки не открываем, но текущие итеpации завершаемexternint Start=9;
externint End=20;
// Параметры используемых индикаторовexternint Fast = 5;
externint Slow = 39;
externint Signal = 20;
externint MagicNumber = 7; // магик //extern int Period_MA = 20; // Период МА //extern int Period_ADX = 40; //extern int ADXOpenLevel = 12; //---- входные параметры индикатора iVAR//extern int n = 5;//extern int nBars = 100000;//extern int Iteration = 0; // счетчик для подсчета итераций, колен лавины//extern int Sum_Loss = 0;#include <TrailingByFractals_LAVINA.mqh> // ТРАЛ ПО ФРАКТАЛАМ#include <TrailingByShadows.mqh> // ТРАЛ ПО ТЕНЯМ N БАРОВ//// Глобальные переменные//staticdatetime prevtime = 0; // по ценам открытияbool IsExpertFailed = false;
bool IsExpertStopped = false;
int NumberOfTry = 25;
int SlipPips = 3;
int signal_period;
int trend_period;
bool UseSound = true;
color ColorBuy = Blue;
color ColorSell = Red;
string ok.wav;
double Level_new, PointValue,
lots; // вспомогательная переменная для расчета нового размера лота при очередной итерацииint Iteration, Counter_Loss, Ticket_at_history; // счетчик для подсчета последовательного убытка позиций колен лавины//bool Flag_Counter_Loss = false;double Current_Loss, Sum_Loss; // текущий и суммарный убытокint ticket; // Номер ордераdouble orderLots; // Lots double orderProfit; // Profitdouble Price; // Цена открытия рыночного ордераdouble SL; // Значение StopLoss ордераdouble TP; // Значение TakeProfit ордераdouble F1 = 1.0; // значение цены фрактала вверх (на 2-ом баре)double F11 = 1.0; // вспомогательная переменнаяdouble F2 = -200.0; // значение цены фрактала вниз (на 2-ом баре)double F22 =-200.0; // вспомогательная переменная double V_StopLossPips=0;
double V_TakeProfitPips=0;
//double StopLossPips;int Ticker, Counter;
double channel;
double StopLossPips;
double Lots_New; // Количество лотов для новых ордеровint time = 0; // время - для определения факта работы только с последним закрытым ордером
你好,关于订单寿命的问题,我需要一个订单 "活着 "2分钟。
为什么这样的结构会出现错误3--为什么以及如何纠正?
我明白了,到目前为止,我这样写比较容易。
你能告诉我如何摆脱同时被执行一次吗?
没有所谓的 "更容易"--你不会写"告诉我如何摆脱而SOON..."。"而在代码中,你必须牢记,你所写的一切都应该被一台哑巴机器所理解。
所以有两种方式:正确和错误。
我理解懒得正确改写,懒得理解规则,那么告诉我,你想把 这个东西写成文件 有多久了? 三个星期......。
你好,请教如何写一个条件:如果一个开仓(不管多少,不需要编号)关闭一个或多个盈利,之后如何开一个新仓(一个)?
为自己编辑。
没有所谓的 "更容易"--你不写"告诉我如何在 你做的时候摆脱它......"你必须牢记,你所写的一切都应该被一个愚蠢的硬件所理解。
所以有两种方式:正确和错误。
我也理解非常懒得正确改写,非常懒得理解规则,那么告诉我,你用写到文件的方式纠缠你的题目多久了? 三个星期......。
我在出现问题时就解决,我从1月10日开始编程的专家顾问,已经有4个星期了。我从1月6日开始尝试用MQL编程。
罗曼谢谢你,但我搞不清楚一半的变量是怎么来的,因为不是所有的代码都是这样。
我如何确定两个时间段之间的最高或最低价格?是否有一个特殊的功能来处理这个问题?