Я верю, что в этом мире нет ничего невозможного, если вы хотите стать президентом США, мы можем, мы должны мечтать об этом и мы должны начать пробовать, с правильным планом, снова я говорю, что я верю в "Нет ничего невозможного".
У меня нет опыта программирования, только диплом экономиста. Я изучаю MQL по крупицам, и у меня есть сертификат технического анализа от Бомбейской фондовой биржи (BSE).
Как я уже говорил, я пытался сделать ea на основе ширины с некоторыми другими индикаторами, и я не хочу следовать методу nural, но для изучения я попытался сделать ea на основе ширины в nural,
Я приложил тест за последний месяц, но проблема в том, что эта еа не собирается продавать в короткие сроки :-)
Отчет тестера стратегий
MetaQuotes-Demo (Build 794)
Настройки
Эксперт:
Kundi5
Символ:
EURUSD
Период:
H1 (2013.04.01 - 2013.04.10)
Входы:
StopLoss=30
TakeProfit=100
EA_Magic=12345
Lot=1.00000000
w0=0.50000000
w1=0.50000000
w2=0.50000000
w3=0.50000000
w4=0.50000000
w5=0.50000000
w6=0.50000000
w7=0.50000000
w8=0.50000000
w9=0.50000000
w10=0.50000000
w11=0.50000000
w12=0.50000000
w13=0.50000000
Брокер:
MetaQuotes Software Corp.
Валюта:
USD
Начальный депозит:
10 000.00
Кредитное плечо:
1:100
Результаты
Качество истории:
100%
Бары:
167
Тики:
39708
Символы:
1
Общая чистая прибыль:
2 283.40
Абсолютная просадка баланса:
603.50
Абсолютная просадка капитала:
674.50
Валовая прибыль:
2 997.90
Максимальное снижение баланса:
603.50 (6.04%)
Максимальное снижение капитала:
1 371.80 (12.82%)
Общий убыток:
-714.50
Относительная просадка баланса:
6.04% (603.50)
Относительная просадка капитала:
12.82% (1 371.80)
Коэффициент прибыли:
4.20
Ожидаемая выплата:
380.57
Уровень маржи:
730.27%
Фактор восстановления:
1.66
Коэффициент Шарпа:
0.60
Z-Score:
-0.46 (35.45%)
AHPR:
1.0367 (3.67%)
Корреляция LR:
0.93
Результат OnTester:
0
GHPR:
1.0349 (3.49%)
Стандартная ошибка LR:
606.58
Всего сделок:
6
Короткие сделки (выигранные %):
0 (0.00%)
Длинные сделки (выигранные %):
6 (50.00%)
Всего сделок:
12
Прибыльные сделки (% от общего числа):
3 (50.00%)
Убыточные сделки (% от общего количества):
3 (50.00%)
Самая крупная сделка с прибылью:
1 000.00
Самая крупная убыточная сделка:
-303.50
Средняя прибыльная сделка:
999.30
Средняя убыточная сделка:
-238.17
Максимальный выигрыш подряд ($):
3 (2 997.90)
Максимальные последовательные потери ($):
2 (-603.50)
Максимальная последовательная прибыль (в пересчете):
angevoyageur : Какое отношение нейронная сеть имеет к вашей «ширине»? Трудно идти за тобой.
Сэр, я публикую свои новые исследования, это ширина, которую я закодировал в nural network, но дело в том, что она не принимает короткие условия, можете ли вы помочь мне выяснить проблему?
//+------------------------------------------------------------------+//| Kundi3.mq5 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"//--- input parametersinputint StopLoss= 30 ; // Stop Lossinputint TakeProfit= 100 ; // Take Profitinputint EA_Magic= 12345 ; // EA Magic Numberinputdouble Lot= 1.0 ; // Lots to Trade//--- weight values inputdouble w0= 0.5 ;
inputdouble w1= 0.5 ;
inputdouble w2= 0.5 ;
inputdouble w3= 0.5 ;
inputdouble w4= 0.5 ;
inputdouble w5= 0.5 ;
inputdouble w6= 0.5 ;
inputdouble w7= 0.5 ;
inputdouble w8= 0.5 ;
inputdouble w9= 0.5 ;
inputdouble w10= 0.5 ;
inputdouble w11= 0.5 ;
inputdouble w12= 0.5 ;
inputdouble w13= 0.5 ;
//-------------------------int iBands_handle; // variable for storing the indicator handledouble iBands_Basebuf[]; // dynamic array for storing indicator valuesdouble iBands_Upperbuf[]; // dynamic array for storing indicator valuesdouble iBands_Lowerbuf[]; // dynamic array for storing indicator valuesdouble inputs[ 14 ]; // array for storing inputsdouble weight[ 14 ]; // array for storing weightsstring my_symbol; // variable for storing the symbolENUM_TIMEFRAMES my_timeframe; // variable for storing the time framedouble lot_size; // variable for storing the minimum lot size of the transaction to be performeddouble p_close; // Variable to store the close value of a barint STP, TKP; // To be used for Stop Loss & Take Profit valuesdouble out; // variable for storing the output neuron value//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+intOnInit ()
{
//--- Do we have sufficient bars to workif ( Bars ( _Symbol , _Period )< 60 ) // total number of bars is less than 60?
{
Alert ( "We have less than 60 bars on the chart, an Expert Advisor terminated!!" );
return (- 1 );
}
//--- save the current chart symbol for further operation of the EA on this very symbol
my_symbol= Symbol ();
//--- save the current time frame of the chart for further operation of the EA on this very time frame
my_timeframe= PERIOD_CURRENT ;
//--- save the minimum lot of the transaction to be performed
lot_size= SymbolInfoDouble (my_symbol, SYMBOL_VOLUME_MIN );
//--- apply the indicator and get its handle
iBands_handle= iBands (my_symbol,my_timeframe, 20 , 0 , 2.0 , PRICE_CLOSE );
//--- check the availability of the indicator handleif (iBands_handle== INVALID_HANDLE )
{
//--- no handle obtained, print the error message into the log file, complete handling the errorPrint ( "Failed to get the indicator handle" );
return (- 1 );
}
//--- add the indicator to the price chartChartIndicatorAdd ( ChartID (), 0 ,iBands_handle);
//--- set the iBands_Basebuf array indexing as time seriesArraySetAsSeries (iBands_Basebuf, true );
//--- set the iBands_upper indexing as time seriesArraySetAsSeries (iBands_Upperbuf, true );
//--- set the iBands lower array indexing as time seriesArraySetAsSeries (iBands_Lowerbuf, true );
//--- place weights into the array
weight[ 0 ]=w0;
weight[ 1 ]=w1;
weight[ 2 ]=w2;
weight[ 3 ]=w3;
weight[ 4 ]=w4;
weight[ 5 ]=w5;
weight[ 6 ]=w6;
weight[ 7 ]=w7;
weight[ 8 ]=w8;
weight[ 9 ]=w9;
weight[ 10 ]=w10;
weight[ 11 ]=w11;
weight[ 12 ]=w12;
weight[ 13 ]=w13;
//--- Let us handle currency pairs with 5 or 3 digit prices instead of 4
STP = StopLoss;
TKP = TakeProfit;
if ( _Digits == 5 || _Digits == 3 )
{
STP = STP* 10 ;
TKP = TKP* 10 ;
}
return ( 0 );
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
//--- delete the indicator handle and deallocate the memory space it occupiesIndicatorRelease (iBands_handle);
//--- free the iBands Base dynamic array of dataArrayFree (iBands_Basebuf);
//--- free the iBand lower dynamic array of dataArrayFree (iBands_Lowerbuf);
//--- free the iBands upper dynamic array of dataArrayFree (iBands_Upperbuf);
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick ()
{
//--- Do we have enough bars to work withif ( Bars ( _Symbol , _Period )< 60 ) // if total bars is less than 60 bars
{
Alert ( "We have less than 60 bars, EA will now exit!!" );
return ;
}
// We will use the static Old_Time variable to serve the bar time.// At each OnTick execution we will check the current bar time with the saved one.// If the bar time isn't equal to the saved time, it indicates that we have a new tick.staticdatetime Old_Time;
datetime New_Time[ 1 ];
bool IsNewBar= false ;
// copying the last bar time to the element New_Time[0]int copied= CopyTime ( _Symbol , _Period , 0 , 1 ,New_Time);
if (copied> 0 ) // ok, the data has been copied successfully
{
if (Old_Time!=New_Time[ 0 ]) // if old time isn't equal to new bar time
{
IsNewBar= true ; // if it isn't a first call, the new bar has appearedif ( MQL5InfoInteger ( MQL5_DEBUGGING )) Print ( "We have new bar here " ,New_Time[ 0 ], " old time was " ,Old_Time);
Old_Time=New_Time[ 0 ]; // saving bar time
}
}
else
{
Alert ( "Error in copying historical times data, error =" , GetLastError ());
ResetLastError ();
return ;
}
//--- EA should only check for new trade if we have a new barif (IsNewBar== false )
{
return ;
}
//--- Do we have enough bars to work withint Mybars= Bars ( _Symbol , _Period );
if (Mybars< 60 ) // if total bars is less than 60 bars
{
Alert ( "We have less than 60 bars, EA will now exit!!" );
return ;
}
//--- Define some MQL5 Structures we will use for our tradeMqlTick latest_price; // To be used for getting recent/latest price quotesMqlTradeRequest mrequest; // To be used for sending our trade requestsMqlTradeResult mresult; // To be used to get our trade resultsMqlRates mrate[]; // To be used to store the prices, volumes and spread of each barZeroMemory (mrequest); // Initialization of mrequest structure/*
Let's make sure our arrays values for the Rates, ADX Values and MA values
is store serially similar to the timeseries array*///--- Get the last price quote using the MQL5 MqlTick StructureArraySetAsSeries (mrate, true );
if (! SymbolInfoTick ( _Symbol ,latest_price))
{
Alert ( "Error getting the latest price quote - error:" , GetLastError (), "!!" );
return ;
}
//--- Get the details of the latest 3 barsif ( CopyRates ( _Symbol , _Period , 0 , 3 ,mrate)< 0 )
{
Alert ( "Error copying rates/history data - error:" , GetLastError (), "!!" );
ResetLastError ();
return ;
}
int err1= 0 ; // variable for storing the results of working with the upper buffer of the Bollinger band indicatorint err2= 0 ; // variable for storing the results of working with the lower buffer of the Bollinger band indicatorint err3= 0 ;
//--- copy data from the indicator array to the iBands_upper dynamic array for further work with them
err1= CopyBuffer (iBands_handle, 1 , 0 , ArraySize (inputs)/ 2 ,iBands_Upperbuf);
//--- copy data from the indicator array to the iBands_Lower dynamic array for further work with them
err2= CopyBuffer (iBands_handle, 2 , 0 , ArraySize (inputs)/ 2 ,iBands_Lowerbuf);
//--- copy data from the indicator array to the iBands_Lower dynamic array for further work with them
err3= CopyBuffer (iBands_handle, 2 , 0 , ArraySize (inputs)/ 2 ,iBands_Basebuf);
//--- in case of errors, print the relevant error message into the log file and exit the functionif (err1< 0 || err2< 0 || err3< 0 )
{
Print ( "Failed to copy data from the indicator buffer" );
return ;
}
double d1=- 1.0 ; //lower limit of the normalization rangedouble d2= 1.0 ; //upper limit of the normalization range//--- minimum value over the rangedouble x_min= MathMin (iBands_Lowerbuf[ ArrayMinimum (iBands_Lowerbuf)],iBands_Upperbuf[ ArrayMinimum (iBands_Upperbuf)]);
double x_minn=iBands_Basebuf[ ArrayMinimum (iBands_Basebuf)];
//--- maximum value over the rangedouble x_max= MathMax (iBands_Lowerbuf[ ArrayMaximum (iBands_Lowerbuf)],iBands_Upperbuf[ ArrayMaximum (iBands_Upperbuf)]);
double x_maxx=iBands_Basebuf[ ArrayMaximum (iBands_Basebuf)];
//--- In the loop, fill in the array of inputs with the pre-normalized indicator valuesfor ( int i= 0 ;i< ArraySize (inputs)/ 2 ;i++)
{
inputs[i* 2 ]=((((iBands_Upperbuf[i]-iBands_Lowerbuf[i])/iBands_Basebuf[i])-(x_min+x_minn)*(d2-d1))/((x_maxx+x_max)-(x_min+x_minn)))+d1;
}
//--- store the neuron calculation result in the out variable
out=CalculateNeuron(inputs,weight);
//--- we have no errors, so continue//--- Do we have positions opened already?bool Buy_opened= false ; // variable to hold the result of Buy opened positionbool Sell_opened= false ; // variables to hold the result of Sell opened positionif ( PositionSelect ( _Symbol )== true ) // we have an opened position
{
if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
{
Buy_opened= true ; //It is a Buy
}
elseif ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_SELL )
{
Sell_opened= true ; // It is a Sell
}
}
// Copy the bar close price for the previous bar prior to the current bar, that is Bar 1
p_close=mrate[ 1 ].close; // bar 1 close price/*
1. Check for a long/Buy Setup : MA-8 increasing upwards,
previous price close above it, ADX > 22, +DI > -DI
*///--- Declare bool type variables to hold our Buy Conditionsbool Buy_Condition_1=(out< 0 ); // MA-8 Increasing upwards//--- Putting all together if (Buy_Condition_1 )
{
// any opened Buy position?if (Buy_opened)
{
Alert ( "We already have a Buy Position!!!" );
return ; // Don't open a new Buy Position
}
ZeroMemory (mrequest);
mrequest.action = TRADE_ACTION_DEAL ; // immediate order execution
mrequest.price = NormalizeDouble (latest_price.ask, _Digits ); // latest ask price
mrequest.sl = NormalizeDouble (latest_price.ask - STP* _Point , _Digits ); // Stop Loss
mrequest.tp = NormalizeDouble (latest_price.ask + TKP* _Point , _Digits ); // Take Profit
mrequest.symbol = _Symbol ; // currency pair
mrequest.volume = Lot; // number of lots to trade
mrequest.magic = EA_Magic; // Order Magic Number
mrequest.type = ORDER_TYPE_BUY ; // Buy Order
mrequest.type_filling = ORDER_FILLING_RETURN ; // Order execution type
mrequest.deviation= 100 ; // Deviation from current price//--- send orderOrderSend (mrequest,mresult);
// get the result codeif (mresult.retcode== 10009 || mresult.retcode== 10008 ) //Request is completed or order placed
{
Alert ( "A Buy order has been successfully placed with Ticket#:" ,mresult.order, "!!" );
}
else
{
Alert ( "The Buy order request could not be completed -error:" , GetLastError ());
ResetLastError ();
return ;
}
}
/*
2. Check for a Short/Sell Setup : MA-8 decreasing downwards,
previous price close below it, ADX > 22, -DI > +DI
*///--- Declare bool type variables to hold our Sell Conditionsbool Sell_Condition_1 = (out> 0 ); // MA-8 decreasing downwards//--- Putting all togetherif (Sell_Condition_1 )
{
// any opened Sell position?if (Sell_opened)
{
Alert ( "We already have a Sell position!!!" );
return ; // Don't open a new Sell Position
}
ZeroMemory (mrequest);
mrequest.action= TRADE_ACTION_DEAL ; // immediate order execution
mrequest.price = NormalizeDouble (latest_price.bid, _Digits ); // latest Bid price
mrequest.sl = NormalizeDouble (latest_price.bid + STP* _Point , _Digits ); // Stop Loss
mrequest.tp = NormalizeDouble (latest_price.bid - TKP* _Point , _Digits ); // Take Profit
mrequest.symbol = _Symbol ; // currency pair
mrequest.volume = Lot; // number of lots to trade
mrequest.magic = EA_Magic; // Order Magic Number
mrequest.type= ORDER_TYPE_SELL ; // Sell Order
mrequest.type_filling = ORDER_FILLING_RETURN ; // Order execution type
mrequest.deviation= 100 ; // Deviation from current price//--- send orderOrderSend (mrequest,mresult);
// get the result codeif (mresult.retcode== 10009 || mresult.retcode== 10008 ) //Request is completed or order placed
{
Alert ( "A Sell order has been successfully placed with Ticket#:" ,mresult.order, "!!" );
}
else
{
Alert ( "The Sell order request could not be completed -error:" , GetLastError ());
ResetLastError ();
return ;
}
}
return ;
}
//+------------------------------------------------------------------+//| Neuron calculation function |//+------------------------------------------------------------------+double CalculateNeuron( double &x[], double &w[])
{
//--- variable for storing the weighted sum of inputsdouble NET= 0.0 ;
//--- Using a loop we obtain the weighted sum of inputs based on the number of inputsfor ( int n= 0 ;n< ArraySize (x);n++)
{
NET+=x[n]*w[n];
}
//--- multiply the weighted sum of inputs by the additional coefficient
NET*= 2 ;
//--- send the weighted sum of inputs to the activation function and return its valuereturn (ActivateNeuron(NET));
}
//+------------------------------------------------------------------+//| Activation function |//+------------------------------------------------------------------+double ActivateNeuron( double x)
{
//--- variable for storing the activation function resultsdouble Out;
//--- hyperbolic tangent function
Out=( exp (x)- exp (-x))/( exp (x)+ exp (-x));
//--- return the activation function valuereturn (Out);
}
//+------------------------------------------------------------------+
Советник, о котором вы написали выше, называется Kundi3, но предыдущее сообщение с результатом тестера стратегий показывает Kundi5, или вы уверены, что это одно и то же?
Я верю, что в этом мире нет ничего невозможного, если вы хотите стать президентом США, мы можем, мы должны мечтать об этом и начать пробовать, с правильным планом, еще раз говорю, я верю в "Нет ничего невозможного".
У меня нет опыта программирования, только диплом экономиста. Я изучаю MQL по крупицам, и у меня есть сертификат технического анализа от Бомбейской фондовой биржи (BSE).
Как я уже говорил, я пытался сделать ea на основе ширины с некоторыми другими индикаторами, и я не хочу следовать методу nural, но для изучения я попытался сделать ea на основе ширины в nural,
Я приложил тест за последний месяц, но проблема в том, что эта еа не собирается продавать в короткие сроки :-)
Я уважаю ваш оптимизм, но не разделяю его. В любом случае я рад, если смогу вам помочь, но я пока ничего не знаю о нейронных сетях.
Ваша функция CalculateNeuron() никогда не возвращает положительное число, вам необходимо проверить ваши входные параметры (входы и вес) и вашу функцию. Используйте функцию Print для отладки кода.
surubabs: Да, это то же самое, это произошло из-за полного копирования прошлого предыдущего ea. Вы можете проверить это, сэр.
Несколько вопросов:
1. вы обучали нейронную сеть - оптимизация весовых параметров в тестере стратегий? 2. поскольку функция активации "гиперболический тангенс", то веса должны быть в диапазоне от -1 до 1, вы берете отрицательное значение после оптимизации?
На данный момент в последнем отчете я вижу, что все веса положительные, следовательно ожидать от нейросети отрицательного результата не имеет смысла, здесь получены только от одной ветви гиперболического тангенса и как следствие открытие торгует только в одном направлении.
1. вы обучали нейронную сеть - оптимизация весовых параметров в тестере стратегий? 2. так как функция активации "гиперболический тангенс", то веса должны быть в диапазоне от -1 до 1, вы берете отрицательное значение после оптимизации?
На данный момент в последнем отчете я вижу, что все веса положительные, следовательно ожидать от нейросети отрицательного результата не имеет смысла, здесь получены только от одной ветви гиперболического тангенса и как следствие открытие торгует только в одном направлении.
Мой тест
Сэр, что вы сделали в коде, чтобы получить такой результат, я не смог запустить тестер стратегии с настройками parameater, которые вы объяснили в своей статье, после выбора параметров в тестере я нажал кнопку start butten, но он не тестирует.
тестирование .
Должен ли я изменить формулу нейронного расчета с гиперболической на сигмоидную?
или есть ли какая-нибудь другая функция, чтобы получить результат, как у вас?
Или я должен вручную изменить вес с 0.5 на какой-нибудь другой?
Это гораздо проще, чем вы думаете. Прочитайте еще раз мою статью о нейронных сетях, в частности часть "Putting It All Together". После кода с рисунка 7 есть описание того, как оптимизировать весовые параметры.
Обратите внимание на опции, сначала выберите параметры оптимизации, а затем отключите оптимизацию.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Уважаемый angevoyager,
Я верю, что в этом мире нет ничего невозможного, если вы хотите стать президентом США, мы можем, мы должны мечтать об этом и мы должны начать пробовать, с правильным планом, снова я говорю, что я верю в "Нет ничего невозможного".
У меня нет опыта программирования, только диплом экономиста. Я изучаю MQL по крупицам, и у меня есть сертификат технического анализа от Бомбейской фондовой биржи (BSE).
Как я уже говорил, я пытался сделать ea на основе ширины с некоторыми другими индикаторами, и я не хочу следовать методу nural, но для изучения я попытался сделать ea на основе ширины в nural,
Я приложил тест за последний месяц, но проблема в том, что эта еа не собирается продавать в короткие сроки :-)
Какое отношение нейронная сеть имеет к вашей «ширине»? Трудно идти за тобой.
Уважаемый angevoyager,
Я верю, что в этом мире нет ничего невозможного, если вы хотите стать президентом США, мы можем, мы должны мечтать об этом и начать пробовать, с правильным планом, еще раз говорю, я верю в "Нет ничего невозможного".
У меня нет опыта программирования, только диплом экономиста. Я изучаю MQL по крупицам, и у меня есть сертификат технического анализа от Бомбейской фондовой биржи (BSE).
Как я уже говорил, я пытался сделать ea на основе ширины с некоторыми другими индикаторами, и я не хочу следовать методу nural, но для изучения я попытался сделать ea на основе ширины в nural,
Я приложил тест за последний месяц, но проблема в том, что эта еа не собирается продавать в короткие сроки :-)
Я уважаю ваш оптимизм, но не разделяю его. В любом случае я рад, если смогу помочь вам, но я пока ничего не знаю о нейронных сетях.
Очевидно, что поскольку ваше условие продажи :
и вывести :Ваша функция CalculateNeuron() никогда не возвращает положительное число, вам необходимо проверить ваши входные параметры (входы и вес) и вашу функцию. Используйте функцию Print для отладки кода.
Да, это то же самое, это произошло из-за полного копирования прошлого предыдущего ea. Вы можете проверить это, сэр.
Несколько вопросов:
1. вы обучали нейронную сеть - оптимизация весовых параметров в тестере стратегий?
2. поскольку функция активации "гиперболический тангенс", то веса должны быть в диапазоне от -1 до 1, вы берете отрицательное значение после оптимизации?
На данный момент в последнем отчете я вижу, что все веса положительные, следовательно ожидать от нейросети отрицательного результата не имеет смысла, здесь получены только от одной ветви гиперболического тангенса и как следствие открытие торгует только в одном направлении.
Мой тест
Несколько вопросов:
1. вы обучали нейронную сеть - оптимизация весовых параметров в тестере стратегий?
2. так как функция активации "гиперболический тангенс", то веса должны быть в диапазоне от -1 до 1, вы берете отрицательное значение после оптимизации?
На данный момент в последнем отчете я вижу, что все веса положительные, следовательно ожидать от нейросети отрицательного результата не имеет смысла, здесь получены только от одной ветви гиперболического тангенса и как следствие открытие торгует только в одном направлении.
Мой тест
Сэр, что вы сделали в коде, чтобы получить такой результат, я не смог запустить тестер стратегии с настройками parameater, которые вы объяснили в своей статье, после выбора параметров в тестере я нажал кнопку start butten, но он не тестирует.
тестирование .
Должен ли я изменить формулу нейронного расчета с гиперболической на сигмоидную?
или есть ли какая-нибудь другая функция, чтобы получить результат, как у вас?
Или я должен вручную изменить вес с 0.5 на какой-нибудь другой?
как рассчитать вес?
Это гораздо проще, чем вы думаете.
Прочитайте еще раз мою статью о нейронных сетях, в частности часть "Putting It All Together".
После кода с рисунка 7 есть описание того, как оптимизировать весовые параметры.
Обратите внимание на опции, сначала выберите параметры оптимизации, а затем отключите оптимизацию.
Уважаемый angevoyager,
Я верю, что в этом мире нет ничего невозможного,