void CStrategyMA::FitnessFunction(int chromos)
{
double res=0.0;
// Выбор символа (m_strategy_symbol) из масива используемых символов (m_name_symbols[]) количаством (m_count_symbols)// Пример: m_count_symbols = 1; m_name_symbols[0] = "EURUSD.e";
m_strategy_symbol = m_name_symbols[(int)MathRound(Colony[1][chromos]*(m_count_symbols-1))];
// Выбор периода из масива по индексу (от PERIOD_M5 (индекс - 5) до PERIOD_D1 (индекс - 19))// Для наглядности:// ENUM_TIMEFRAMES PERIOD_INDEX [22] = {PERIOD_CURRENT,// PERIOD_M1, PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M20,// PERIOD_M30,PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8, PERIOD_H12,PERIOD_D1, PERIOD_W1,// PERIOD_MN1};
m_period = PERIOD_INDEX[(int)(MathRound(Colony[2][chromos]*5)+14)];
// Освобождаю дескриптор загруженого ранее индикатораIndicatorRelease(m_handle);
// Создаю новый индикатор с периодом - (int)(MathRound(Colony[3][chromos]*100)+1)// от 1 до 100
m_handle=iMA(m_strategy_symbol,(ENUM_TIMEFRAMES)m_period,(int)(MathRound(Colony[3][chromos]*100)+1),0,MODE_EMA,PRICE_CLOSE);
// Без использования Sleep(1000); - генерируется последующая ошибка при использовании в коде ф-ции: CopyBuffer// "ошибка доступа к историческим даным", хоть дескриптор и создан!?!?!?Sleep(1000);
if(m_handle<0)
{
Alert("Ошибка при создании индикатора MA - номер ошибки: ",GetLastError()," ",m_strategy_symbol," ",m_period);
} else
{
// Аналитический процес
res = HistoryCheckTradeConditions();
}
AmountStartsFF++;
Colony[0][chromos]=res;
}
この機能を使うと、「2012.11.28 09:58:32 4194304 bytes not available」というエラーが出るので、スワップファイルを10GBtに増やしたのが理解の助けになりました。
ありがとうございます。肝に銘じておきます。多分、どなたかこの欄が埋まっているときと埋まっていないとき(私の場合のように)を教えてください。何かあれば、サービスデスクで聞いてみます。
1.コードを 正しく挿入してください。
2. m_periodパラメータはどのように最適化/選択されるのでしょうか?つまり、最適化におけるその価値は何なのか?
曖昧な質問には、曖昧なまましか答えられない -グラフ期間
エラーに関するコメントが気になります。" 2012.11.28 09:38:18 4194304 bytes not available "
エラーに関するコメントが気になります。" 2012.11.28 09:38:18 4194304 bytes not available "
これは、実行プラットフォームである取引所からお客様の注文に割り当てられた識別子です。
皆様、ご返信ありがとうございました。
type_fillingで このような不確実性を発見した: 1つのモードのみが 許可される
と同じように、SendOrder が正常に注文を出す。 と同時にrequest.type_filling = ORDER_FILLING_RETURN; //соответствующий флаг разрешения 0また、発注が成功した後は、クエリで request.type_filling =ORDER_FILLING_FOK を指定しても、発注したオーダーの実際のプロパティORDER_TYPE_FILLING = ORDER_FILLING_RETURN になります。
許可されたモードのリストと、発注後の実際のプロパティの間にミスマッチがあるように思われる
tol64:
また、外部 取引システムとはどういう意味なのか、私も誤解しているかもしれないので、明らかにしてください。
とおっしゃいましたが
tol64を お持ちとのことですが。
はい、よく確認したところ、注文をトリガーした時点でこのフィールドには何も表示されませんでした。
では、為替 取引の際にチェックされたのか、されなかったのか。
メモリが足りない。
ありがとうございます。
状況を分析するために、以下のコードを役立ててください。
この機能を使うと、「2012.11.28 09:58:32 4194304 bytes not available」というエラーが出るので、スワップファイルを10GBtに増やしたのが理解の助けになりました。
また、Sleep(1000)に戸惑いを感じています。
また、発注に成功すると、リクエストに request.type_filling =ORDER_FILLING_FOK が指定されて いても、発注されたオーダーの実際のプロパティORDER_TYPE_FILLING = ORDER_FILLING_RETURN が常に 指定されます。
許可されたモードのリストと、注文後の実際のプロパティに矛盾があるように思うのですが......。