
void DoAlert(string UD)
{
if (!NewBar() || !Use_Sound)
return;
PlaySound ("Alert2");
Alert (Symbol()," ",Period(),"m Boll Touch at ",UD);
}
bool NewBar()
{
static datetime dt = 0;
if (dt != Time[0])
{
dt = Time[0];
return(true);
}
}

int start() {
int l_stoplevel_8;
int l_spread_12;
double l_point_16;
double l_bid_24;
double l_ask_32;
int li_unused_40;
double l_minlot_44;
double l_lotstep_52;
double ld_60;
int li_68;
int li_72;
int li_76;
int li_80;
int li_84;
int li_88;
bool li_92;
bool li_96;
bool li_100;
bool li_104;
double ld_108;
double ld_116;
string ls_0 = Symbol();
if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) {
Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
Sleep(1000);
return;
} //+------------------------------------------------------------------+
//| Check the correctness of the order volume |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
{
//--- minimal allowed volume for trade operations
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume);
return(false);
}
//--- maximal allowed volume of trade operations
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume);
return(false);
}
//--- get minimal step of volume changing
double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f",
volume_step,ratio*volume_step);
return(false);
}
description="Correct volume value";
return(true);
} 

int start() {
int l_stoplevel_8;
int l_spread_12;
double l_point_16;
double l_bid_24;
double l_ask_32;
int li_unused_40;
double l_minlot_44;
double l_lotstep_52;
double ld_60;
int li_68;
int li_72;
int li_76;
int li_80;
int li_84;
int li_88;
bool li_92;
bool li_96;
bool li_100;
bool li_104;
double ld_108;
double ld_116;
string ls_0 = Symbol();
if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) {
Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) +
", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè");
Sleep(1000);
return;
} return(0);

//+------------------------------------------------------------------+
//| Check the correctness of the order volume |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
{
//--- minimal allowed volume for trade operations
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume);
return(false);
}
//--- maximal allowed volume of trade operations
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume);
return(false);
}
//--- get minimal step of volume changing
double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f",
volume_step,ratio*volume_step);
return(false);
}
description="Correct volume value";
return(true);
}
المواضيع المتشابهه | ||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| مجموعة كتب في برمجة الاندرويد - كتب تعلم برمجة الإندرويد - Android Books | ليالي دمشق | استراحة بورصات | 1 | 11 - 07 - 2015 03:54 AM |
| أبحث عن أستراتيجية لربح 4 نقاط (لنتادل الخبرات) | العيد سفيان | منتدى تداول العملات العام | 1 | 06 - 02 - 2013 09:04 PM |
| ارجووو الرد من اصحاب الخبرات ....... | alaa366 | منتدى المؤشرات و الاكسبرتات | 6 | 20 - 07 - 2010 03:18 AM |