для восстановления после остановки можно использовать поле OrderComment(). Например заносить туда порядковый номер "колена".
А как быть с этим?:
//--- Внутренние глобальные переменные
bool NewCycle=true;//Переключатель. Если true, то начинается новый цикл
bool OpPosHigh=true;//Переключатель. Если true, то можно ставить верхние позиции
bool OpPosLow=true;//Переключатель. Если true, то можно ставить верхние позиции
bool Perevod12=false;//Переключатель. Если true, то прямой досрочно переводится в обратный
bool Perevod21=false;//Переключатель. Если true, то обратный досрочно переводится в прямой
double LOT;//Текущий лот в цикле
double ProfitClose;//Текущая планка профита для закрытия
int NOpen;//Количество открытых ордеров
int NOtlog;//Количество отложенных ордеров
int NumCycle;//Номер текущего цикла
int N1;//Текущее колено прямого Мартина
int N2;//Текущее колено обратного Мартина
double LevelHigh;//Уровень для ордеров Buy прямого Мартина и Sell - обратного
double LevelLow;//Уровень для ордеров Sell прямого Мартина и Buy - обратного
int LastHighTicket;//Тикет последнего верхнего ордера
int LastLowTicket;//Тикет последнего нижнего ордера
Тут одного номера колена недостаточно. Это все нужно сохранять