ve günlükte komutun gösterdiği şey: Print ( "Lot of Number: " ,Lots); ?
#property link"" #property version"1.00" #property strict //--- input parameters inputint Percent= 50 ; inputint Fast_EMA_Period= 12 ; inputint Slow_EMA_Period= 25 ; inputint Signal_Period= 9 ; inputdouble Step_PSAR= 0.02 ; inputdouble Maximum_PSAR= 0.2 ; inputint MAGICNUMBER= 413 ; staticdatetime New_Time; // Время текущего бара double Margin_Percent; //Используемые средства для открытия ордеров double Lots; //Определение общего количества лотов double Lots_Volume; double MacdCurrent; //Параметры MACD основной линии текущего бара double MacdPrevious1; //Параметры MACD основной линии предыдущего бара double MacdPrevious2; //Параметры MACD основной линии со смещением на 2 бара double StopLoss; //Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара double Previous_StopLoss; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара double CurrentPSAR; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ voidOnTick () {
bool New_Bar= false ; // Флаг нового бара int ticket,total,cnt; //--------------------------------------------------------------------------- New_Time= TimeCurrent (); if ( Time [ 0 ]==New_Time) // Сравниваем время New_Bar= true ; // Поймался новый бар elseif (New_Bar== false ) // Если бар не новый..
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki de NormalizeDouble() eklemelisiniz?
Michail_David : Lütfen açık bir koşulla bir örnek verin. Eğer doğru anladıysam, döngüde açılması için bir koşul olmalı. Doğru şekilde?
Parti hesabından hemen sonra kodun başında sipariş açma komutunu verin ve test cihazının düzgün çalıştığından emin olun. Sonra her şeyi geri verebilirsiniz.
Renat Akhtyamov : Parti hesabından hemen sonra kodun başında sipariş açma komutunu verin ve test cihazının düzgün çalıştığından emin olun. Sonra her şeyi geri verebilirsiniz.
Teşekkür ederim. Bir hata bulundu. Lotları hesapladıktan sonra geri döndüm; durmak. Onun yüzünden kuralar açılmadı
Michail_David : Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki NormalizeDouble() eklemelisiniz?
Mutlaka. Ve sadece partiler değil, aynı zamanda sunucuya iletilen diğer değerler. Hesaptaki minimum ve maksimum izin verilen değerlerin yanı sıra değişiklik adımı için lotların kontrol edilmesi de yararlıdır, lotun 0.03'lük artışlarla değiştirilebileceği durumlar vardı, bu da 90.01'in çalışmadığı anlamına gelir, en azından normalleş.
Umarım OnInit () içinde Yüzde değişkenine bir değer atanır?
Yüzde değişkeni kullanıcı tarafından belirlenir. OnInit() dışarı attım.
Lot=0 ise, test cihazı hiçbir şey açmaz
Margin_Percent=AccountFreeMargin()*Percent/100;
Lots=Margin_Percent/ MarketInfo ( Symbol (), MODE_MARGINREQUIRED );
Lots_Volume=( MathFloor (Lots)+ MarketInfo ( Symbol (), MODE_LOTSTEP ));
if (Lots>Lots_Volume){
Lots=Lots_Volume;
}
else if (Lots<Lots_Volume)
Lots= MathFloor (Lots);
Print ( "Количество лотов : " ,Lots);
return ;
Yine de, kodda Yüzde ayarı nerede
ve günlükte komutun gösterdiği şey: Print ( "Lot of Number: " ,Lots); ?
Yine de, kodda Yüzde ayarı nerede
ve günlükte komutun gösterdiği şey: Print ( "Lot of Number: " ,Lots); ?
#property version "1.00"
#property strict
//--- input parameters
input int Percent= 50 ;
input int Fast_EMA_Period= 12 ;
input int Slow_EMA_Period= 25 ;
input int Signal_Period= 9 ;
input double Step_PSAR= 0.02 ;
input double Maximum_PSAR= 0.2 ;
input int MAGICNUMBER= 413 ;
static datetime New_Time; // Время текущего бара
double Margin_Percent; //Используемые средства для открытия ордеров
double Lots; //Определение общего количества лотов
double Lots_Volume;
double MacdCurrent; //Параметры MACD основной линии текущего бара
double MacdPrevious1; //Параметры MACD основной линии предыдущего бара
double MacdPrevious2; //Параметры MACD основной линии со смещением на 2 бара
double StopLoss; //Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR; //Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
bool New_Bar= false ; // Флаг нового бара
int ticket,total,cnt;
//---------------------------------------------------------------------------
New_Time= TimeCurrent ();
if ( Time [ 0 ]==New_Time) // Сравниваем время
New_Bar= true ; // Поймался новый бар
else if (New_Bar== false ) // Если бар не новый..
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki NormalizeDouble() eklemelisiniz?
Çok tamam.
Sıra açma mantığında bir hata arayın.
Bu gibi durumlarda, genellikle siparişin açılacağı açık bir koşul belirlerim.
Çok tamam.
Sipariş açma mantığında hata arayın.
Bu gibi durumlarda, genellikle siparişin açılacağı açık bir koşul belirlerim.
Lütfen açık bir koşulla bir örnek verin. Eğer doğru anladıysam, döngüde açılması için bir koşul olmalı. Doğru şekilde?
Parti hesabından hemen sonra kodun başında sipariş açma komutunu verin ve test cihazının düzgün çalıştığından emin olun. Sonra her şeyi geri verebilirsiniz.
Beşinci satırda Yüzde ayarlanır. Günlük çıktısı: "Lot sayısı 90.0100000001". Belki NormalizeDouble() eklemelisiniz?