Etiketi fiyatla birlikte taşımadan önce, mevcut ekran genişliği kullanılarak yatay konum hesaplanır.
x=width - 70 ;
Kenar çubuğunu açtığımda, etiket ekranın sağına doğru gidiyor. Günlükte yenile düğmesine tıklarsanız, göstergenin çalıştığını görebilirsiniz, ancak etiket döndürülmez, yalnızca ikinci denemede görünür. OnCalculate'in her seferinde çağrılmadığı ortaya çıktı? Bir fonksiyon nasıl kalıcı olarak çalıştırılır?
Etiketi fiyatla birlikte taşımadan önce, mevcut ekran genişliği kullanılarak yatay konum hesaplanır.
Kenar çubuğunu açtığımda, etiket ekranın sağına doğru gidiyor. Günlükte yenile düğmesini tıklarsanız, göstergenin çalıştığını görebilirsiniz, ancak etiket döndürülmez, yalnızca ikinci denemede görünür. OnCalculate'in her seferinde çağrılmadığı ortaya çıktı? Bir fonksiyon nasıl kalıcı olarak çalıştırılır?
OnChartEvent - CHARTEVENT_CHART_CHANGE'da yoklama ve yeniden çizim yapın
Gösterge tablo üzerinde oklar çiziyorsa ve oklar nesne değilse, bu çizim için parametreleri tablonun kendisinden veya başka bir şekilde almak mümkün müdür? Tamponlardan veri almak ve hatta test için göstergeyi normal olarak başlatmak mümkün değildir.
Gösterge tablo üzerinde oklar çiziyorsa ve oklar nesne değilse, bu çizim için parametreleri tablonun kendisinden veya başka bir şekilde almak mümkün müdür? Tamponlardan veri almak ve hatta test için göstergeyi normal olarak başlatmak mümkün değildir.
Bir danışman için çalışma iznini kontrol edin. Ve baskıdaki çıktı nerede? Bu kod parçası bir şey döndürüyor gibi görünüyor, çünkü hata yok, o zaman sorun bu kod parçasının dışında. Bu parçada, 0'a bölünmenin gerçekleşebilmesi dışında
Bütün kod? Evet şimdi .
//+------------------------------------------------------------------+//| Stop_Ma_v5.1.mq4 |//| Copyright 2018, axe44 |//| http://axe44.opentraders.ru/bio/ |//+------------------------------------------------------------------+#property copyright"Copyright 2018,@ axe44"#property link"gerchikco.com/registration/?ref=sfaCLYmR"#property version"5.10"#property strict//--- Inputsexterndouble Lots = 0.1 ; // Lots лотexternbool Z_schet = 1 ; // Z_schet з-тенденцияexternint Expir = 20 ; // Expir истечение в часахexterndouble klot = 1.5 ; // klot - множитель тенденцииexternint StopLoss = 200 ; // StopLoss лосьexternint TakeProfit = 300 ; // TakeProfit язьexternint BULevel = 0 ; // BULevel уровень БУexternint BUPoint = 3 ; // BUPoint пункты БУexternint Spred = 4 ; // Spred спред externint TrailingStop = 0 ; // TrailingStop тралinputENUM_TIMEFRAMES TF1 = PERIOD_M15 ; //TF1 Время АТРexternint Stop = 14 ; // Stop Периуд Stop//extern int Atr_Procent = 20; //Atr_Procent Максимальный процент АТР для работыinputENUM_TIMEFRAMES TF2 = PERIOD_M15 ; //TF2 Время Ма открытия\закрытия //extern int Pr = 50; // Pr Процент разницы движения.externint MA = 14 ; //MA Периуд MAexternint MaM = 3 ; //MaM способ расчёта Ма externint StartHour = 0 ; //StartHour час начала торговлиexternint StartMin = 30 ; //StartMin минута начала торговлиexternint EndHour = 23 ; //EndHour час окончания торговлиexternint EndMin = 30 ; //EndMin минута окончания торговлиexternint Slip = 30 ; //Slip реквотexternint Magic = 124 ; //Magic магикexternint TesterMinPercentProfitTrades= 50 ;
externint AutoLot = 1 ; // автолотdouble atr,ma,rm,pm,minatr,lot,hma,lma,min,max,zn,C,pribul;
double NormalP[ 302 ];
int i,count,prom,index,psd,usd;
datetime t= 1 ,day,hour;
bool ww,nn,bb,ss;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit ()
{
//---if ( Digits == 3 || Digits == 5 )
{
TakeProfit*= 10 ;
StopLoss*= 10 ;
TrailingStop*= 10 ;
BUPoint*= 10 ;
BULevel*= 10 ;
Slip*= 10 ;
Spred*= 10 ;
}
//---return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| расчёт лота |//+------------------------------------------------------------------+double MoneyManagement()
{
double DynamicLot= 0 ;
double Free_Equity= AccountEquity ();
if (Free_Equity<= 0 ) return ( 0 );
double TickValue= MarketInfo ( Symbol (), MODE_TICKVALUE );
double LotStep= MarketInfo ( Symbol (), MODE_LOTSTEP );
double MinLot= MarketInfo ( Symbol (), MODE_MINLOT );
double MxLot= MarketInfo ( Symbol (), MODE_MAXLOT );
if (TickValue*LotStep!= 0 ) DynamicLot= MathFloor ((Free_Equity* MathMin (AutoLot/ 10 , 100 )/ 1000 )/StopLoss*TickValue/LotStep)*LotStep;
if (DynamicLot<MinLot)DynamicLot=MinLot;
if (DynamicLot>MxLot)DynamicLot=MxLot;
return (DynamicLot);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
Comment ( "" );
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.04.2009 |//| Описание : Возвращает флаг разрешения торговли по времени. |//+----------------------------------------------------------------------------+//| Параметры: |//| hb - часы времени начала торговли |//| mb - минуты времени начала торговли |//| he - часы времени окончания торговли |//| me - минуты времени окончания торговли |//+----------------------------------------------------------------------------+bool isTradeTimeInt( int hb= 0 , int mb= 0 , int he= 0 , int me= 0 )
{
datetime db, de; // Время начала и окончания работыint hc; // Часы текущего времени торгового сервера
db= StrToTime ( TimeToStr ( TimeCurrent (), TIME_DATE )+ " " +( string )hb+ ":" +( string )mb);
de= StrToTime ( TimeToStr ( TimeCurrent (), TIME_DATE )+ " " +( string )he+ ":" +( string )me);
hc= TimeHour ( TimeCurrent ());
if (db>=de)
{
if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
}
if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return ( True );
elsereturn ( False );
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void PutOrder( int type, double price)
{
int r= 0 ;
color clr=Green;
double sl= 0 ,tp= 0 ;
if (type== 1 || type== 3 || type== 5 )
{
clr=Red;
if (StopLoss> 0 ) sl= NormalizeDouble (price+StopLoss* Point , Digits );
if (TakeProfit> 0 ) tp= NormalizeDouble (price-TakeProfit* Point , Digits );
}
if (type== 0 || type== 2 || type== 4 )
{
clr=Blue;
if (StopLoss> 0 ) sl= NormalizeDouble (price-StopLoss* Point , Digits );
if (TakeProfit> 0 ) tp= NormalizeDouble (price+TakeProfit* Point , Digits );
}
if (AutoLot> 0 ){lot=MoneyManagement();}
if (AutoLot<= 0 ){lot=Lots;}
r= OrderSend ( NULL ,type,lot, NormalizeDouble (price, Digits ),Slip,sl,tp, "" ,Magic, TimeCurrent ()+Expir* 60 * 60 ,clr);
return ;
}
//+------------------------------------------------------------------+//| история |//+------------------------------------------------------------------+double history()
{
if ( OrderSelect ( OrdersHistoryTotal ()- 1 , SELECT_BY_POS , MODE_HISTORY ))
{
pribul= OrderProfit ();
}
return (pribul);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CountOrders( int type)
{
count= 0 ;
for ( i= OrdersTotal ()- 1 ;i>= 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{
if ( OrderType ()==type) count++;
}
}
}
return (count);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int CountTrades()
{
count= 0 ;
for ( i= OrdersTotal ()- 1 ;i>= 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{
if ( OrderType ()< 2 ) count++;
}
}
}
return (count);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double Znomer()
{
zn= 0 ; // z-число
psd= 0 ; // кол. положительных сделок
usd= 0 ; // количество отрицательных сделок
ww= 0 ; // боол переменная
nn= 0 ; // боол переменная
C= 0 ; // C = количество чередований между отрицательными и положительными сделками
index= OrdersHistoryTotal ();
if ( OrdersHistoryTotal ()> 302 ) index= 301 ; // берём не более 301 сделкиif (index< 30 ) return ( 0 ); // берём не менее 30
count= OrdersHistoryTotal (); // считаем от скольки
prom=count-index; // выделяем только последние сделкиif (prom< 0 ) prom= 0 ; // исключаем ошибкиfor ( i=count;i>prom;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== true )
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{ // далее магия
pribul= OrderProfit ();
if (ww== 0 &&pribul> 1 ){C++;ww= 1 ;nn= 0 ;} // подсчитываем смену тенденцииif (nn== 0 &&pribul< 1 ){C++;ww= 0 ;nn= 1 ;} // подсчитываем смену тенденции if (pribul> 1 ){psd++;} //прибыльные сделкиif (pribul< 1 ){usd++;} // убыточные сделки
}
}
}
/*/*
Величина Z = (A * (C — 0.5) — B)/ ((B*(B — C))/(C -1))^(1/2), где:
A = количество анализируемых сделок;
B = 2*количество прибыльных сделок * количество убыточных сделок;
C = количество чередований в выборке (чередованием считается каждая пара сделок,
когда прибыльная сделка сменяет убыточную либо наоборот).
*/
index=psd+usd;
if (index< 30 ) return ( 0 );
zn=(index*(C- 0.5 )-( 2 *psd*usd))/
(((( 2 *psd*usd)*(( 2 *psd*usd)-C))/
(C- 1 ))*(((( 2 *psd*usd)*(( 2 *psd*usd)-C))/
(C- 1 ))* 0.5 ));
return (zn);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void Trailing()
{
bool mod;
for ( i= OrdersTotal ()- 1 ;i>= 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{
if ( OrderType ()== OP_BUY )
{
if ( Bid - OrderOpenPrice ()>TrailingStop* Point )
{
if (( OrderStopLoss ()<( Bid -TrailingStop* Point )) || ( OrderStopLoss ()== 0 ))
{
mod= OrderModify ( OrderTicket (), OrderOpenPrice (), Bid -TrailingStop* Point , OrderTakeProfit (), 0 ,Yellow);
return ;
}
}
}
if ( OrderType ()== OP_SELL )
{
if (( OrderOpenPrice ()- Ask )>TrailingStop* Point )
{
if (( OrderStopLoss ()>( Ask +TrailingStop* Point )) || ( OrderStopLoss ()== 0 ))
{
mod= OrderModify ( OrderTicket (), OrderOpenPrice (), Ask +TrailingStop* Point , OrderTakeProfit (), 0 ,Yellow);
return ;
}
}
}
}
}
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void BU()
{
bool m;
for ( i= OrdersTotal ()- 1 ;i>= 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{
if ( OrderType ()== OP_BUY )
{
if ( OrderOpenPrice ()<=( Bid -(BULevel+BUPoint)* Point ) && OrderOpenPrice ()> OrderStopLoss ())
{
m= OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice ()+BUPoint* Point , OrderTakeProfit (), 0 ,Yellow);
}
}
if ( OrderType ()== OP_SELL )
{
if ( OrderOpenPrice ()>=( Ask +(BULevel+BUPoint)* Point ) && ( OrderOpenPrice ()< OrderStopLoss () || OrderStopLoss ()== 0 ))
{
m= OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice ()-BUPoint* Point , OrderTakeProfit (), 0 ,Yellow);
}
}
}
}
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void CloseAll( int ot=- 1 )
{
bool cl;
for ( i= OrdersTotal ()- 1 ;i>= 0 ;i--)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
{
if ( OrderType ()== 0 && (ot== 0 || ot==- 1 ))
{
RefreshRates ();
cl= OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Bid , Digits ),Slip,White);
}
if ( OrderType ()== 1 && (ot== 1 || ot==- 1 ))
{
RefreshRates ();
cl= OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( Ask , Digits ),Slip,White);
}
}
}
}
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick ()
{
if (t!= Time [ 0 ]&&( Ask - Bid )<Spred* Point )
{
ww= 1 ;
nn= 1 ;
t= Time [ 0 ];
if (TrailingStop> 0 ) Trailing();
if (BULevel> 0 ) BU();
rm = iMA ( NULL ,TF2,MA, 0 ,MaM, 0 , 1 )- iMA ( NULL ,TF2,MA, 0 ,MaM, 1 , 1 );
pm = iMA ( NULL ,TF2,MA, 0 ,MaM, 0 , 2 )- iMA ( NULL ,TF2,MA, 0 ,MaM, 1 , 2 );
// Stop//---- maximums counting
hma = High [ iHighest ( NULL , 0 , MODE_HIGH ,Stop, 1 )];
lma = Low [ iLowest ( NULL , 0 , MODE_LOW ,Stop, 1 )];
//----//Print("hma ",hma);//Print("lma ",lma);//if ( Znomer()!=0) {zn=Znomer();Print("== Z-счёт равен = ",zn);}
}
if (ww== 1 && pm< 0 && rm> 0 && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin)) { if ( Ask <hma)PutOrder( 4 ,hma);
if ( Bid >lma)PutOrder( 5 ,lma);
ww= 0 ;} // Если цена раньше падала а теперь растётif (nn== 1 && pm> 0 && rm< 0 && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin)) { if ( Ask <hma)PutOrder( 4 ,hma);
if ( Bid >lma)PutOrder( 5 ,lma);
nn= 0 ;}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Tester function |//+------------------------------------------------------------------+doubleOnTester ()
{
double PercentProfitTrades = 0 ;
if ( TesterStatistics ( STAT_PROFIT_TRADES ) > 0 )
PercentProfitTrades = TesterStatistics ( STAT_PROFIT_TRADES ) / TesterStatistics ( STAT_TRADES ) * 100 ;
if (PercentProfitTrades >= TesterMinPercentProfitTrades)
return ( NormalizeDouble (( TesterStatistics ( STAT_PROFIT ) / TesterStatistics ( STAT_EQUITY_DD )), 2 ));
elsereturn ( 0 );
}
//+------------------------------------------------------------------+
Satır 378, aynı baskıdır, etkinleştirildiğinde EA artık çalışmaz.
221 ve 223 satırlarındaki kodun tasarımında bir hata olduğundan şüpheleniyorum. Hiç kimse geçmiş numaralandırmayı kullanmaz, birkaç örnek vardır, bu nedenle bir hata mümkündür. https://www.mql5.com/en/code/7452 sayfasında bir örnek var, ama orada benim için çok karmaşık. Znomer() işlevinde, satır 206'da sıfıra bölme, hariç tuttum.
Talimatları ve önerileri sabırsızlıkla bekliyorum. Teşekkür ederim.
Включаемый файл Z_include.mqh содержит функцию, которая вычисляет на массиве данных следующие параметры: Max - максимальное значение;Min - минимальное значение;матожидание - среднее значение;стандартное отклонение - среднеквадратичное отклонение (несмещенную оценку);скос;эксцесс;Z-счет на массиве данных. Описание понятия Z -счет смотрите в...
Satır 378, aynı baskıdır, etkinleştirildiğinde EA artık çalışmaz.
221 ve 223 satırlarındaki kodun tasarımında bir hata olduğundan şüpheleniyorum. Hiç kimse geçmiş numaralandırmayı kullanmaz, birkaç örnek vardır, bu nedenle bir hata mümkündür. https://www.mql5.com/en/code/7452 sayfasında bir örnek var, ama orada benim için çok karmaşık. Znomer() işlevinde, satır 206'da sıfıra bölme, hariç tuttum.
Talimatları ve önerileri sabırsızlıkla bekliyorum. Teşekkür ederim.
Görüntülenen sembol ve sihir için tek bir işlem yoksa veya tek bir karlı veya kaybedilen işlem yoksa veya yalnızca bir çift varsa (C=1), 0'a böleceğiz.
Formülün kendisinden önce, psd ve usd'nin > 0 ve C !=1 olduğunu kontrol etmeniz gerekir.
Kârlı olanlar > 1, kârsız olanlar < 1, kâr = 1 ile analiz edilmez, yani. 1 de bir veya başka bir gruba dahil edilmelidir.
İşlevinizde, önce sembol ve sihirle eşleşen anlaşma numaralarını seçmek, ardından sayılarının değişip değişmediğini kontrol etmek, evet ise zn'yi yeniden hesaplamak, değilse zn'yi döndürmek (bu durumda zn'yi sıfırlamayın ve kontrol edin) != 0 yazdırma gerekli olmadığında)
Baykuş, ww ve nn değişkenlerine bağlı olduğu için çalışmayı durdurur ve işlevinizin girişinde baykuş algoritmasını değiştirir ve yok ederler.
Bir kod biçimlendirme hatası olsaydı, hiçbir şey derlenmezdi.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Sonra bir soru daha :-)
Etiketi fiyatla birlikte taşımadan önce, mevcut ekran genişliği kullanılarak yatay konum hesaplanır.
x=width - 70 ;Kenar çubuğunu açtığımda, etiket ekranın sağına doğru gidiyor. Günlükte yenile düğmesine tıklarsanız, göstergenin çalıştığını görebilirsiniz, ancak etiket döndürülmez, yalnızca ikinci denemede görünür. OnCalculate'in her seferinde çağrılmadığı ortaya çıktı? Bir fonksiyon nasıl kalıcı olarak çalıştırılır?
O zaman bir soru daha :-)
Etiketi fiyatla birlikte taşımadan önce, mevcut ekran genişliği kullanılarak yatay konum hesaplanır.
Kenar çubuğunu açtığımda, etiket ekranın sağına doğru gidiyor. Günlükte yenile düğmesini tıklarsanız, göstergenin çalıştığını görebilirsiniz, ancak etiket döndürülmez, yalnızca ikinci denemede görünür. OnCalculate'in her seferinde çağrılmadığı ortaya çıktı? Bir fonksiyon nasıl kalıcı olarak çalıştırılır?
OnChartEvent - CHARTEVENT_CHART_CHANGE'da yoklama ve yeniden çizim yapın
Selamlar. Lütfen bana söyle.
Gösterge tablo üzerinde oklar çiziyorsa ve oklar nesne değilse, bu çizim için parametreleri tablonun kendisinden veya başka bir şekilde almak mümkün müdür? Tamponlardan veri almak ve hatta test için göstergeyi normal olarak başlatmak mümkün değildir.
Selamlar. Lütfen bana söyle.
Gösterge tablo üzerinde oklar çiziyorsa ve oklar nesne değilse, bu çizim için parametreleri tablonun kendisinden veya başka bir şekilde almak mümkün müdür? Tamponlardan veri almak ve hatta test için göstergeyi normal olarak başlatmak mümkün değildir.
Gösterge kodunuz var mı?
Gösterge kodunuz var mı?
Numara
Burada ondan veri alma girişimlerini ve göstergenin kendisini tartıştık.
https://www.mql5.com/ru/forum/160587/page165#comment_10221621
Bir ders kitabından örnekler çalışıyorum, bunlardan biri bir satırda derlenmiyor
'MQL5_PROGRAM_NAME' - numaralandırmayı dönüştüremez fare_2.mq5 29 52
Bir danışman için çalışma iznini kontrol edin. Ve baskıdaki çıktı nerede? Bu kod parçası bir şey döndürüyor gibi görünüyor, çünkü hata yok, o zaman sorun bu kod parçasının dışında. Bu parçada, 0'a bölünmenin gerçekleşebilmesi dışında
Bütün kod? Evet şimdi .
Satır 378, aynı baskıdır, etkinleştirildiğinde EA artık çalışmaz.
221 ve 223 satırlarındaki kodun tasarımında bir hata olduğundan şüpheleniyorum. Hiç kimse geçmiş numaralandırmayı kullanmaz, birkaç örnek vardır, bu nedenle bir hata mümkündür. https://www.mql5.com/en/code/7452 sayfasında bir örnek var, ama orada benim için çok karmaşık.
Znomer() işlevinde, satır 206'da sıfıra bölme, hariç tuttum.
Talimatları ve önerileri sabırsızlıkla bekliyorum. Teşekkür ederim.
Numara
Burada ondan veri alma girişimlerini ve göstergenin kendisini tartıştık.
https://www.mql5.com/ru/forum/160587/page165#comment_10221621
Üzgünüm, temelde bilgisayarımda .dll çalıştırmıyorum, bensiz devam et.
Sadece göstergeler var. Parametrelerde kullanıldığında ikincisinin kullanımını devre dışı bıraktım.
Bütün kod? Evet şimdi .
Satır 378, aynı baskıdır, etkinleştirildiğinde EA artık çalışmaz.
221 ve 223 satırlarındaki kodun tasarımında bir hata olduğundan şüpheleniyorum. Hiç kimse geçmiş numaralandırmayı kullanmaz, birkaç örnek vardır, bu nedenle bir hata mümkündür. https://www.mql5.com/en/code/7452 sayfasında bir örnek var, ama orada benim için çok karmaşık.
Znomer() işlevinde, satır 206'da sıfıra bölme, hariç tuttum.
Talimatları ve önerileri sabırsızlıkla bekliyorum. Teşekkür ederim.
Formülde fazladan (( 2 *psd*usd)*(( 2 *psd*usd)-C))/(C- 1 )) .
Üs: ^0.5, *0.5 değil
Görüntülenen sembol ve sihir için tek bir işlem yoksa veya tek bir karlı veya kaybedilen işlem yoksa veya yalnızca bir çift varsa (C=1), 0'a böleceğiz.
Formülün kendisinden önce, psd ve usd'nin > 0 ve C !=1 olduğunu kontrol etmeniz gerekir.
Kârlı olanlar > 1, kârsız olanlar < 1, kâr = 1 ile analiz edilmez, yani. 1 de bir veya başka bir gruba dahil edilmelidir.
İşlevinizde, önce sembol ve sihirle eşleşen anlaşma numaralarını seçmek, ardından sayılarının değişip değişmediğini kontrol etmek, evet ise zn'yi yeniden hesaplamak, değilse zn'yi döndürmek (bu durumda zn'yi sıfırlamayın ve kontrol edin) != 0 yazdırma gerekli olmadığında)
Baykuş, ww ve nn değişkenlerine bağlı olduğu için çalışmayı durdurur ve işlevinizin girişinde baykuş algoritmasını değiştirir ve yok ederler.
Bir kod biçimlendirme hatası olsaydı, hiçbir şey derlenmezdi.